我正在尝试删除超过 5 天的文件(日志文件),并且我需要保留一个特定文件而不删除,我尝试使用
find . -type f -mtime +5 ! -name 'test2' -exec rm -f {} \;
但这并不成功。我使用的操作系统是 Centos 7。
答案1
正如您所看到的,我创建了以下结构来测试:
mkdir test && cd test && touch file1 file2 file3 lol test2
touch -t 200805101024 file*
获得这个:
ls -la
total 8
drwxr-xr-x 2 root root 4096 Oct 13 18:09 .
drwxr-xr-x 4 phphil phphil 4096 Oct 13 18:09 ..
-rw-r--r-- 1 root root 0 May 10 2008 file1
-rw-r--r-- 1 root root 0 May 10 2008 file2
-rw-r--r-- 1 root root 0 May 10 2008 file3
-rw-r--r-- 1 root root 0 Oct 13 18:09 lol
-rw-r--r-- 1 root root 0 Oct 13 18:09 test2
执行正确的命令后:
find . -type f -mtime +5 ! -name 'test2' -exec rm -f {} \;
情况正如预料的那样:
ls -la
total 8
drwxr-xr-x 2 root root 4096 Oct 13 18:09 .
drwxr-xr-x 4 phphil phphil 4096 Oct 13 18:09 ..
-rw-r--r-- 1 root root 0 Oct 13 18:09 lol
-rw-r--r-- 1 root root 0 Oct 13 18:09 test2
编辑:查找有关命令或命令参数的信息:
当我不确定某个命令和/或参数的行为时,我会按以下步骤操作:
man find | less
然后您可以在命令手册中搜索您要查找的内容,如下所示:
- 类型
/
- 写下我认为是的搜索词
-mtime
- 然后您可以通过键入 转到下一个出现的搜索词
N
,或者通过键入 转到上一个搜索词n
我发现了这个有趣的信息:
-mtime n File's data was last modified n*24 hours ago. See the comments for -atime to understand how round‐ ing affects the interpretation of file modification times.