You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 05:12:04