我有一个脚本可以查找超过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和任何嵌套文件
有人能指出我正确的方向吗?
答案 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 {} \;