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今天之前。