此命令不符合 DWIM:
find . \( -name .svn -prune -false \) -o \( -empty -delete \)
find: The -delete action atomatically turns on -depth, but -prune
does nothing when -depth is in effect. If you want to
carry on anyway, just explicitly use the -depth option.
Run Code Online (Sandbox Code Playgroud)
添加-depth
会禁用 的效果-prune
,这意味着.svn
目录也会被删除。那么:find
可以使用哪种语法(如果有)来修剪然后删除一些未修剪的路径,而无需使用其他工具,例如rm
?
您可以使用-path
,它不是 POSIX,但许多实现都支持:
find . \! -path "*/.svn/*" -empty -delete
Run Code Online (Sandbox Code Playgroud)
-regex
也是一个选择。