我可以使用 find 命令中的模式遍历目录大小:
find . -name "results_*" -exec du -sm '{}' \;
现在我想删除这些目录的内容,但仍然保留这些目录本身(结果_*)以创建一个占位符,表明它们存在并且可以在备份中找到。
我怎么能这么做呢?
答案1
您可以改为匹配路径:
find . -path "*/results_*/*" -delete
或者,如果您find
不支持-delete
,
find . -path "*/results_*/*" -exec rm -rf {} \; -prune
这会找到results_*
其路径中的任何内容,不包括最后一个路径组件;因此,目录 match 的所有内容都results_*
将被删除,但目录本身将被保留(除非它们本身位于匹配的目录中results_*
)。