查找具有名称的多个文件(shell unix)

时间:2013-07-15 17:28:48

标签: shell unix command-line

我想删除所有名称为*~ or #*#的文件 我试过了:

find "dir" -name '#*#' -or -name '*~' -delete

但它只删除末尾为〜的文件,而不是在开头和结尾带#的文件

我该怎么做?

3 个答案:

答案 0 :(得分:1)

首先,您需要指定-name主要模式; ##将匹配名为##的文件,而*##将匹配以##结尾的任何文件。其次,您需要对name的两种用法进行分组,以便一次匹配将被视为要删除的匹配项。

find dir \( -name '*##' -or -name '*~' \) -delete

答案 1 :(得分:0)

如何使用-regex切换查找:

find -E . -regex "^./(~|##)$" -exec rm '{}' \;

-E用于支持扩展(现代)正则表达式功能。

答案 2 :(得分:0)

我找到了我的解决方案:找到dir -name“〜”-delete -or -name“##”-delete 谢谢大家