為什麼這個指令會刪除所有內容?

為什麼這個指令會刪除所有內容?

我在 Unix 機器上執行這個命令:

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

我想刪除CVS當前目錄中任何目錄中調用的任何文件,它刪除了所有內容。

幸運的是,我所要做的就是再次從 CVS 中檢查即可恢復。想像一下,如果我指定/為起始目錄!

我認為原因是我使用了name而不是-name.我只是重新運行它

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

而且看起來效果很好。如果name使用 與 相對,到底會發生什麼事-name

答案1

你之前錯過了破折號-name,因此它正在尋找路徑名為.nameCVS,其中點引用目前資料夾,因此刪除所有資料夾。

find 實用程式遞歸地向下尋找列出的每個路徑的目錄樹。

echo您可以透過在要執行的命令之前使用來輕鬆測試:

尋找 。名稱 CVS -exec echo rm -fr {} \;

相關內容