我有几台 Linux Red Hat Linux 机器,我必须在它们上面找到一些文件。问题是它们自 2004 年以来就有很多文件和文件夹。我不知道在哪里可以找到这些文件。
是否有一些终端命令可以帮助我选择特定的时间范围。我想查看从上个月(五月)到现在更改的每个文件。
答案1
是的,该find
命令可以做到这一点。需要进行一些实验,并反复阅读手册页才能让它执行您想要的操作,但这是一个很棒的命令。以下是 2 个示例:
find . -type f -ctime -2 -print0 | xargs -0 tar -rvf ~/dev_customer_attributes.tar
find . -mmin -400 > /tmp/files.txt
第一个find
用途是-type f
仅列出文件。-type d
对于目录。-ctime -2
用于列出创建时间少于 2 天的文件,然后将它们添加到 tar 存档中。我不记得我什么时候用过这个命令,也不记得为什么。
第二条命令检查过去 400 天内修改的文件和目录,并将该列表输出到files.txt
这是我刚刚发现的一个很棒的信息页面。
例如,在我的个人笔记本电脑的 ~ 中,有 2010 年以前的文件。还有很多较新的文件。通过运行find . -ctime -1000 -ctime +600
,我得到了如下列表:
./Pictures/Photos
./Pictures/Photos/2005
./Pictures/Photos/2005/08
./Pictures/Photos/2005/08/29
./Pictures/Photos/2005/08/29/DSCN1023.JPG
./Pictures/Photos/2009
./Pictures/Photos/2009/02
./Pictures/Photos/2009/02/23
./Pictures/Photos/2009/02/23/img_0001.jpg
./Pictures/Photos/2010
./Pictures/Photos/2010/01
./Pictures/Photos/2010/01/01
./Pictures/Photos/2010/01/01/DSCN2170.JPG
./Pictures/Photos/2010/01/01/DSCN2171.JPG
./Pictures/Photos/2010/06
./Pictures/Photos/2010/06/04
./Pictures/Photos/2010/06/04/img_0111.jpg
./Pictures/Photos/2010/06/04/img_0112.jpg
./Pictures/Webcam/2010-10-03-045227.jpg
./.mission-control
./.mission-control/accounts
./.mission-control/accounts/accounts.cfg
在这种情况下,Pictures
文件夹中有从 2010 年之前复制过来的遗留项目,但这是在 600 天前的 400 天期间发生的。
答案2
$ man find
find . -name '*.doc' -type f -mtime -28
列出当前目录下(及其中)所有“mtime”(修改日期)超过 28 天的 .doc 文件。
答案3
寻找就是你要找的
查找 .-newermt "2012-05-01 00:00:00"
这将为您提供匹配的文件列表。
您可以添加-ls
标志以获取更多信息。像这样
查找 .-newermt“2012-05-01 00:00:00”-ls
答案4
我认为您将需要 find 命令的 -mtime 参数。看看这是否有帮助: http://www.cyberciti.biz/faq/howto-finding-files-by-date/