Linux/Unix:查找在特定日期修改的文件
时间:2020-01-09 10:46:01 来源:igfitidea点击:
如何在Linux/Apple OS X/* BSD和Unix等操作系统下使用find命令查找在2013-02-07(07/Feb/2013)上已修改的所有文件?
有两种方法可以列出在当年给定日期之后修改的给定目录中的文件。
最新版本的GNU/find命令使用以下语法:
语法
GNU/find最新版本:
find /path/to/dir -newermt "date" find /path/to/dir -newermt "Feb 07" find /path/to/dir -newermt "yyyy-mm-dd" #List all files modified on given date find /path/to/dir -newermt yyyy-mm-dd ! -newermt yyyy-mm-dd -ls ##print all *.pl ## find /path/to/dir -newermt "yyyy-mm-dd" -print -type f -iname "*.pl"
另一种方法适用于v4.3.3之前的find版本:
touch -t 02010000 /tmp/stamp$$ find /usr -newer /tmp/stamp$$ rm -f /tmp/stamp$$
例子
要查找在2013-02-07(07/Feb/2013)上已修改的所有文件,请执行:
find /path/to/dir -type f -name "*" -newermt 2013-02-07 ! -newermt 2013-02-08
输出示例:
./output/tmp/rss.js-gzip-10881623-407-1360173602 ./images/advanced-cache.php ./images/faq/2013/02/ir-150x150.jpg ./images/faq/2013/02/warning-40px76.png
要在/home/Hyman/projects中"找出所有Python文件"(* .py),这些文件已在2013-02-07(07/Feb/2013)上进行了修改,请执行:
find $HOME/projects -type f -name "*.py" -newermt 2013-02-07 ! -newermt 2013-02-08 -print
传递-ls选项以获取详细文件列表:
find $HOME/projects -type f -name "*.py" -newermt 2013-02-07 ! -newermt 2013-02-08 -ls
要在/home/Hyman/projects中"发现并删除所有tmp"文件(* .tmp),这些文件已于2013-02-07(07/Feb/2013)进行了修改,请执行:
find $HOME/projects -type f -name "*.py" -newermt 2013-02-07 ! -newermt 2013-02-08 -delete