2012-03-27 53 views
3

我想列出所有在最近的n天(或甚至简单地之后的 Y-m-d)修改日期在目录中的所有文件。它也必须通过所有子目录递归地工作。如何通过命令行列出昨天在目录中修改的文件?

我该怎么做?

理想输出:

file.txt Mar 26 15:15 
file2.txt Mar 27 01:15 

可接受的输出:

file.txt 
file2.txt 

回答!(感谢所有帮助)

$ find . -type f -mtime -1 -exec ls -lah {} \; 
-rw-r--rw- 1 apache apache 18K Mar 26 08:22 ./file1.txt 
-rw-r--rw- 1 apache apache 12K Mar 26 09:23 ./dir1/file2.txt 
-rw-r--rw- 1 apache apache 16K Mar 26 10:24 ./dir1/dir2/file3.txt 

回答

5

find . -type f -mtime -1 -exec ls -l {} \;

会列出所有文件过去24小时内,有一个长列表只是为了确认修改日期

+0

工作。这和-1一样简单。谢谢。 – Ryan 2012-03-27 14:39:34

1

使用:

find . -mtime +1 

有关详细信息,请参阅

man find 
+0

以下命令列出当前目录(。),它的修改时间超过1天之前的所有文件。在原始帖子中给出你想要的输出。 – 2012-03-27 14:34:50

1
find dir -mtime +1 -print 

这将找到的dir和那名子目录下的所有文件1天前或之前修改。

+0

谢谢,n天后我需要这个,而不是之前。 – Ryan 2012-03-27 14:36:02

+0

对不起,这就是我的意思!这将搜索至少1天的文件!无论如何,您可以使用-mtime -1来获得相反的结果。 – Guido 2012-03-27 14:38:33

+0

是的,现在明白了。谢谢。 – Ryan 2012-03-27 14:41:25

相关问题