如何删除所有符合某种模式的文件?

如何删除所有符合某种模式的文件?

当我在 Mercurial 中恢复时,它会留下几个.orig文件。我希望能够运行命令来删除所有文件。

我发现一些资料说要运行:

rm **/*.orig

但这给了我这样的信息:

rm: cannot remove `**/*.orig': No such file or directory

我也尝试过这些命令:

rm -rv *.orig
rm -R *\.orig

答案1

使用该find命令(小心!)

find . -name '*.orig' #-delete

我已经注释掉了删除命令,但是一旦您对它的匹配内容满意,只需#从该行中删除它,它就会删除所有这些文件。

答案2

“find” 有一些非常先进的技术来搜索所有或当前目录和 rm 文件。

find ./ -name ".orig" -exec rm -rf {} \;

答案3

我已经删除了所有以 .nfs000000000 开头的文件,如下所示

rm .nfs000000000*

答案4

以下是我通常会做的事情

find ./ -name "*.orig" | xargs rm -r

最好先检查要删除的文件xargs。下面将打印出您找到的文件。

find ./ -name "*.orig" | xargs

如果你注意到找到了一个你不想删除的文件,可以调整你的初始文件find或添加一个grep -v步骤,这将省略一个匹配,即

find ./ -name "*.orig" | grep -v "somefiletokeep.orig" | xargs rm -r

相关内容