0

我有一个脚本可以在超过 30 天的文件夹中查找文件:

find /my/path/*/README.txt -mtime +30

然后会产生一个结果,例如

/my/path/jobs1/README.txt
/my/path/job2/README.txt
/my/path/job3/README.txt

现在我坚持的部分是我想删除超过 30 天的文件夹 + 文件。

 find /my/path/*/README.txt -mtime +30 -exec rm -r {} \; 

似乎不起作用。它只是删除 readme.txt 文件

所以理想情况下,我只想删除 /job1、/job2、/job3 和任何嵌套文件

谁能指出我正确的方向?

4

2 回答 2

1

这将是一种更安全的方式:

find /my/path/ -mindepth 2 -maxdepth 2 -type f -name 'README.txt' -mtime +30 -printf '%h\n' | xargs echo rm -r

echo如果您在看到输出后发现它已经正确,请删除。

用它printf '%h\n'来获取文件的目录,然后xargs用来处理它。

于 2013-09-09T16:17:55.457 回答
0

您只需运行以下命令即可递归删除 30 天前修改的目录。

find /my/path/ -type d -mtime +30 -exec rm -rf {} \;
于 2013-09-09T16:49:01.443 回答