【发布时间】:2013-03-04 15:36:16
【问题描述】:
我需要想出一个 Bash 脚本,如果它们满足以下两个条件,它将删除目录中的所有文件夹:
- 超过 7 天。
- 其中有一个不包含特定字符串的 xml 文件。
我知道此命令适用于删除目录中所有早于 n 天的文件夹:
find ./ -type d -mtime +7 -exec rm -rf {}\;
此命令会删除所有名为 kittens.xml 且不包含字符串 <claws>18</claws> 的文件:
find ./* -name "kittens.xml" -type f\! -exec grep -L "<claws>18</claws>" {} \;| xargs rm -fv
但是如何删除所有超过一周的文件夹并且不包含该字符串?
仅供参考,我之前对 Bash 的经验很少。
【问题讨论】:
-
一个命令作用于目录,另一个作用于文件。您的意思是要删除超过 7 天且不包含任何包含字符串
<claws>18</claws>的文件的目录? -
是的!这正是我的意思。