Linux中如何删除除昨日创建文件外的所有文件?
问题:仅保留昨日创建的文件,删除其他文件
假设我的文件如下:
file1 ==> 2024/07/10 file2 ==> 2024/07/9 file3 ==> 2024/07/9 file4 ==> 2024/07/8
我想要删除所有文件,仅保留创建日期为昨日(2024/07/09为昨日)的文件。
我了解find命令,但仅知道如何删除N天前的文件,比如下面这条命令会保留今日和昨日的文件:
find . -mtime +2 -delete
更新2
我想到一种方法:
yesterday="$(date -d 'yesterday' '+%Y-%m-%d')" while read -r file do if [ "$yesterday" != "stat $file -c %y | awk -F ' ' '{print $1}'" ] then rm -vf "$file" fi done < <(find . -type f)
我的思路是:如果stat {} -c %y输出的日期不等于$yesterday,则删除文件。但该方法会删除所有文件:(
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

