删除所有目录中的所有 Vim 撤消文件

tur*_*tle 6 vim find wildcards rm

我刚刚意识到.un~我的文件系统周围散布着大量 Vim 撤消 ( ) 文件。我想删除所有这些文件,除了一个目录 - ~/.tmp. 我的第一个问题是我似乎找不到删除这些东西的 Unix 命令。例如,我有一个如下所示的文件名:

.myfile.txt.un~

我试过,rm -f *.unrm -f *.un\~rm -f *.un*,等我似乎无法找到可以删除这些文件中的任何命令。如何删除这些文件?

其次,我想用 find 写一个命令,它可以访问我所有的目录并删除这些文件,~/.tmp目录除外。我很害怕执行这个命令,以防它出错。任何人都可以帮助构建一个 find 命令来做到这一点吗?在此先感谢您的帮助!

Mic*_*zek 5

这些命令不起作用,因为通配符模式会忽略点文件(名称以字符开头的文件.),除非点明确出现在模式中。所以*.un~匹配yourfile.txt.un~但不匹配.myfile.txt.un~,而.*.un~匹配.myfile.txt.un~

您应该能够为此使用find(1)find通配符匹配不会专门处理点文件):

find / -name "*.un~" -not -path "~/.tmp/*" -delete
Run Code Online (Sandbox Code Playgroud)

这告诉 find 搜索/所有*.un~不匹配的文件~/.tmp并删除它们。如果你脱掉-delete它只会输出一个列表,所以你可以检查并确保它不会删除错误的东西。您可能还想-mount在那里投入以阻止它搜索您已安装的其他文件系统