我想从子文件夹中删除所有 emacs 备份 (~) 文件。我知道我可以cd在每个文件夹中删除它们rm *~(例如备份文件 test.cpp~)。
如何使用一个命令删除这些文件,而无需在每个文件夹中进行 cd'ing?
(我试过了rm -r *~,rm -rf *~但它们似乎不起作用)
你可以用find和来做到这一点exec。这是一个执行您想要执行的操作的示例:
find -name '*~' -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
让我们分解它是如何工作的。该find命令将递归执行它的目录,默认情况下它将打印出它找到的所有内容。Using-name '*~'告诉我们只选择名称与 regex 匹配的条目*~。我们必须引用它,否则外壳可能会为我们扩展它。Using-exec rm {}将rm针对它找到的每一件事执行,并{}作为文件名的占位符。(final;是需要告诉find这是命令结束的地方。这不是什么大不了的事,但如果你不使用它,它会发出呜呜声,什么也不做。这\是逃避它,因为它;是一个特殊的外壳字符。 )