我有一个包含很多文件的目录。命令的输出ls
是
-rw-r--r-- 1 nobody nogroup 427494 May 26 13:59 14_20150526065238928590_102.txt
-rw-r--r-- 1 nobody nogroup 2113592 May 26 14:00 14_20150526065238928590_105.txt
-rw-r--r-- 1 nobody nogroup 429947 May 26 14:00 14_20150526065238928590_110.txt
-rw-r--r-- 1 nobody nogroup 453831 May 27 14:00 14_20150526065238928590_112.txt
-rw-r--r-- 1 nobody nogroup 551023 May 27 14:01 14_20150526065238928590_118.txt
-rw-r--r-- 1 nobody nogroup 60083 May 27 14:01 14_20150526065238928590_119.txt
-rw-r--r-- 1 nobody nogroup 632324 May 28 03:38 14_20150526065238928590_160.txt
-rw-r--r-- 1 nobody nogroup 735624 May 28 03:38 14_20150526065238928590_161.txt
-rw-r--r-- 1 nobody nogroup 2707507 May 28 03:40 14_20150526065238928590_162.txt
从上面的列表中,我想检索在输入日期之前创建的文件名:
例如:我输入的日期是20150528,我想要结果:(2015年5月28日之前创建)
14_20150526065238928590_102.txt
14_20150526065238928590_105.txt
14_20150526065238928590_110.txt
14_20150526065238928590_112.txt
14_20150526065238928590_118.txt
14_20150526065238928590_119.txt
我怎样才能实现这个目标?
答案1
查找当前目录及其子目录中最后修改时间早于2015-05-28的所有文件:
find . ! -newermt 20150527
如果您只想当前目录中的文件并且不是其子目录,使用:
find . -maxdepth 1 ! -newermt 20150527
怎么运行的
find
这是 Unix 搜索文件时最有用的命令之一。
.
这告诉
find
我们开始在当前目录中查找。您可以将其替换为您喜欢的任何目录。!
这是合乎逻辑的,但不是:它颠倒了接下来的测试。
-newermt 20150527
这是针对修改时间晚于2015-05-27的文件进行的测试。由于上述原因
!
,此测试是反向的,它会查找文件不是更新于 2015-05-27。注意 ”不是更新于 2015-05-27”与“2015 年 5 月 28 日之前创建”含义相同。