Linux按日期查找文件并列出在特定日期修改的文件
时间:2020-01-09 10:42:20 来源:igfitidea点击:
在UNIX和Linux系统下,如何按日期查找文件?
如何搜索在特定日期在Linux或者类似Unix的系统上创建的文件?
如何获得在特定日期在Linux或者Unix上已修改的所有文件的列表?
Linux和UNIX之类的操作系统不存储文件创建时间。
但是,您可以使用文件访问以及修改时间和日期来按日期查找文件。
例如,可以列出在特定日期已修改的所有文件。
让我们看看如何在Linux上按日期查找文件。
您需要使用NA命令和NA命令。
ls命令示例,按日期查找文件
语法如下:
ls -l ls -lt ls -ltu ls -lt /etc/ | more
您需要使用grep命令/egrep命令来过滤掉信息:
$ ls -lt /etc/ | grep filename ls -lt /etc/ | grep 'Jun 20'
更好的建议解决方案是find命令:
find . -type f -ls |grep '2016' find . -type f -ls |grep 'filename' find /etc/ -type f -ls |grep '25 Sep'
find命令示例
如果许多天之前需要特定的日期范围,则可以考虑使用find命令。
在此示例中,在/data/images目录中找到在2007年1月1日至2008年1月1日之间修改的文件:
touch --date "2007-01-01" /tmp/start touch --date "2008-01-01" /tmp/end find /data/images -type f -newer /tmp/start -not -newer /tmp/end
您可以将列表保存到名为output.txt的文本文件中,如下所示:
find /data/images -type f -newer /tmp/start -not -newer /tmp/end > output.txt
Linux使用date命令按日期查找文件
Gnu查找各种命令行选项,以通过修改和访问日期/时间戳列出文件。
-newerXY选项命令
语法如下:
find /dir/ -type f -newerXY 'yyyy-mm-dd' find /dir/ -type f -newerXY 'yyyy-mm-dd' -ls
字母X和Y可以是以下任何字母:
a
文件引用的访问时间B
文件引用的诞生时间c
索引的inode状态改变时间m
文件参考的修改时间t
引用直接解释为时间
要查看当前目录中2016年9月24日修改的所有文件,请执行以下操作:
find . -type f -newermt 2016-09-24 ## pass the -ls option to list files in ls -l format ## find . -type f -newermt 2016-09-24 -ls
或者
find . -type f -newermt 2016-09-24 ! -newermt 2016-09-25 find . -type f -newermt 2016-09-24 ! -newermt 2016-09-25 -ls
输出示例:
956 4 -rw-r--r-- 1 root root 910 Sep 24 11:42 ./init.d/.depend.boot 958 4 -rw-r--r-- 1 root root 876 Sep 24 11:42 ./init.d/.depend.start 959 4 -rw-r--r-- 1 root root 783 Sep 24 11:42 ./init.d/.depend.stop
要查看2016年9月25日访问的所有文件:
$ find . -type f -newerat 2016-09-25 ! -newerat 2016-09-26
或者
$ find . -type f -newerat 2016-09-25 ! -newerat 2016-09-26 -ls
列出所有30天前访问的* .c文件
执行以下命令:
find /home/you -iname "*.c" -atime -30 -type f
或者
find /home/you -iname "*.c" -atime -30 -type f -ls
列出超过30天前访问的所有* .c文件
执行以下命令:
find /home/you -iname "*.c" -atime +30 -type f
或者
find /home/you -iname "*.c" -atime +30 -type f -ls
列出正好30天前访问过的所有* .c文件
执行以下命令:
find /home/you -iname "*.c" -atime 30 -type f
或者
find /home/you -iname "*.c" -atime 30 -ls