试图删除文件及其父目录

时间:2013-09-09 16:09:49

标签: bash rm

我有一个脚本可以查找超过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和任何嵌套文件

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分: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进行处理。

答案 1 :(得分:0)

您可以运行以下命令,以递归方式删除超过30天前修改的目录。

find /my/path/ -type d -mtime +30 -exec rm -rf {} \;