在Linux或UNIX下按访问,修改日期/时间查找文件
时间:2020-01-09 10:40:14 来源:igfitidea点击:
如何找到之前下载的pdf或文本文件?
Linux如何根据大致的时间查找文件?
您需要使用find命令。
每个文件都有三个时间戳记,它们记录对该文件执行某些操作的最后时间:
- 一次访问(读取文件内容)
- 更改状态(修改文件或其属性)ctime
- 修改(更改文件内容)mtime
您可以搜索时间戳在一定期限内的文件,或者将它们与其他时间戳进行比较。
您可以使用-mtime选项。
如果该文件是N * 24小时前最后一次访问,则返回文件列表。
例如,要查找最近2个月(60天)内的文件,您需要使用-mtime +60选项。
-mtime +60
表示您正在寻找60天前修改的文件。-mtime -60
表示少于60天。-mtime 60
如果您跳过+或恰好意味着60天。
因此,要查找60天前最后修改的文本文件,请使用
$ find /home/you -iname "*.txt" -mtime -60 -print
在屏幕上显示最近修改的文件的内容,使用
$ find /home/you -iname "*.txt" -mtime -60 -exec cat {} \;
使用wc命令计算文件总数
$ find /home/you -iname "*.txt" -mtime -60 | wc -l
您还可以使用访问时间来查找pdf文件。
以下命令将打印最近60天内访问的所有pdf文件的列表:
$ find /home/you -iname "*.pdf" -atime -60 -type -f
列出恰好在10天之前访问过的所有mp3:
$ find /home/you -iname "*.mp3" -atime 10 -type -f
还有一个名为-daystart的选项。
它从今天开始而不是从24小时之前开始测量时间。
因此,要列出昨天访问的主目录中的所有mp3,请执行以下命令
$ find /home/you -iname "*.mp3" -daystart -type f -mtime 1
其中:
- -type f`仅搜索文件而不搜索目录
-daystart选项
-daystart选项用于测量从当天开始而不是24小时之前开始的时间。
找出昨天修改的所有perl(* .pl)文件,执行:
find /nas/projects/mgmt/scripts/perl -mtime 1 -daystart -iname "*.pl"
您还可以列出8-10天前修改过的perl文件,执行:要列出主目录树中两到四天前修改过的所有文件,请执行:
find /nas/projects/mgmt/scripts/perl -mtime 8 -mtime -10 -daystart -iname "*.pl"
-newer选项
要在/nas/images目录树中查找比/tmp/foo文件新的文件,请执行:
find /etc -newer /tmp/foo
您可以使用touch命令设置要搜索的日期时间戳,然后使用-newer选项,如下所示
touch --date "2010-01-05" /tmp/foo # Find files newer than 2010/Jan/05, in /data/images find /data/images -newer /tmp/foo