在带有美元名称的 Maven 本地存储库目录 - 未解析的属性?我已经概述了如何得到几十个文件名中带有美元符号的目录。
我尝试使用以下命令摆脱这些:
find . -type d -name "*\$*" -exec rm -rf {} \;
它为每个目录提供了错误消息。但目录及其内容仍然消失了。
所以我重试了以下内容/tmp
:
mkdir "\$adir"
find . -type d -name "*\$*" -exec rm -rf {} \;
并再次出现错误
find: ./$adir: No such file or directory
如果没有这样的警告,如何删除这些文件?
答案1
发生这种情况是因为在每个匹配的目录上find
执行rm -rf
,然后尝试下降到该目录 - 但它消失了。
为了避免这种情况,并且不收到相应的警告,您应该告诉find
修剪目录,以便它不会尝试进一步处理它们:
find . -type d -name "*\$*" -exec rm -rf {} \; -prune
由于rm
可以处理多个目录,因此您可以告诉find
一次删除多个目录:
find . -type d -name "*\$*" -exec rm -rf {} + -prune