如何使用 mtime 查找早于 1 天的文件?

Nis*_*hat 4 linux scripting find

我正在尝试删除超过 1 天的所有文件。在执行删除文件的脚本之前,我尝试使用 mtime 查找文件。但是,我的命令面临同样的问题-

我的当前日期是

Wed Jan 27 11:49:20 BDT 2016
Run Code Online (Sandbox Code Playgroud)

我的文件列表是-

Jan 25 15:11 25-01-2016.txt            
Jan 26 13:05 26-01-2016.txt    
Jan 27 02:30 27-01-2016.txt    
Jan 25 15:11 dfk-25-01-2016.txt    
Jan 26 13:05 dfk-26-01-2016.txt      
Jan 27 02:30 dfk-27-01-2016.txt 
Run Code Online (Sandbox Code Playgroud)

我认为-mtime +1应该列出一天前的所有文件。

find /etc/output/*.txt -mtime +1
find /etc/output/*.txt -mtime +0
Run Code Online (Sandbox Code Playgroud)

/output/25-01-2016.txt
/output/dfk-25-01-2016.txt

find /etc/output/*.txt -mtime -1
Run Code Online (Sandbox Code Playgroud)

/output/26-01-2016.txt
/output/27-01-2016.txt
/output/dfk-26-01-2016.txt
/output/dfk-27-01-2016.txt

我想要的输出如下,

find /etc/output/*.txt -mtime +1
Run Code Online (Sandbox Code Playgroud)

/output/25-01-2016.txt
/output/dfk-25-01-2016.txt

find /etc/output/*.txt -mtime +0
Run Code Online (Sandbox Code Playgroud)

/output/26-01-2016.txt
/output/dfk-26-01-2016.txt
/output/25-01-2016.txt
/output/dfk-25-01-2016.txt

Oth*_*eus 13

两点:找到“忽略小数部分”。我猜它计算小时数,除以 24,并将结果整数化(丢弃分数)。因此,-mtime 0检查文件,比较 mtimes,转换为小时,除以 24。如果该结果的整数部分为 0,则匹配。这意味着 0.99999 小时前将匹配。然后-mtime +0匹配任何 mtime 差异至少为 24 小时的文件。

其次,如果您希望 mtime 计算日历天数,而不是n从现在开始的 -24 小时周期,请使用-daystart. 所以-daystart -mtime 0意味着今天-daystart -mtime +0今天之前。