查找特定时间范围内的文件的命令

查找特定时间范围内的文件的命令

我有几台 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/

相关内容