我在 Unix 机器上运行这个命令:
find . name CVS -exec rm -fr {} \;
我想CVS
从当前目录中删除任何目录内调用的任何文件,但它删除了所有内容。
幸运的是,我只需从 CVS 再次签出即可恢复。想象一下,如果我将其指定/
为起始目录!
我认为原因是我使用了name
而不是-name
。我只是将其重新运行为
find . -name CVS -exec rm -fr {} \;
看起来运行良好。如果name
使用 而不是 ,究竟会发生什么-name
?
答案1
你之前缺少破折号-name
,因此它正在寻找路径名为.
,name
和CVS
,其中点引用当前文件夹,因此删除所有内容。
查找实用程序以递归方式查找列出的每个路径的目录树。
echo
您可以在要运行的命令之前使用以下命令轻松进行测试:
查找 . 名称 CVS -exec echo rm -fr {} \;