我可以在Linux中使用什么命令检查给定目录(或其子目录)中是否存在文件名末尾包含~
的文件?
例如,如果我在名为t
的目录中,其中包含许多子目录等,我想删除所有以~
结尾的文件。
答案 0 :(得分:9)
注意其中包含空格的文件名!
find ./ -name "*~" -type f -print0 | xargs -0 rm
答案 1 :(得分:8)
使用GNU find
find /path -type f -name "*~" -exec rm {} +
或
find /path -type f -name "*~" -delete
答案 2 :(得分:2)
find ./ -name '*~' -print0 | xargs -0 rm -f
此处find
将搜索目录./
和所有子目录,过滤与glob'*〜'匹配的文件名并打印它们(使用proper quoting courtesy of alberge)。结果传递给xargs
以附加到rm -f
,结果字符串在shell中运行。您可以使用多个路径,还有许多其他过滤器可用(只需阅读man find
)。
答案 3 :(得分:1)
你可以使用find,grep,rm组合,比如
找到| grep“〜”| xargs rm -f
可能其他人有更好的想法:)