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