为什么这个命令会删除所有内容?

为什么这个命令会删除所有内容?

我在 Unix 机器上运行这个命令:

find . name CVS -exec rm -fr {} \;

我想CVS从当前目录中删除任何目录内调用的任何文件,但它删除了所有内容。

幸运的是,我只需从 CVS 再次签出即可恢复。想象一下,如果我将其指定/为起始目录!

我认为原因是我使用了name而不是-name。我只是将其重新运行为

find . -name CVS -exec rm -fr {} \;

看起来运行良好。如果name使用 而不是 ,究竟会发生什么-name

答案1

你之前缺少破折号-name,因此它正在寻找路径名为.nameCVS,其中点引用当前文件夹,因此删除所有内容。

查找实用程序以递归方式查找列出的每个路径的目录树。

echo您可以在要运行的命令之前使用以下命令轻松进行测试:

查找 . 名称 CVS -exec echo rm -fr {} \;

相关内容