Bash

查找和刪除子目錄沒有錯誤?

  • July 17, 2013

如果不存在子目錄,我需要找到一種從特定目錄中刪除子目錄而不會收到錯誤的方法。此命令將成功刪除子目錄(如果存在)

find /path/to/dir/* -maxdepth 1 -type d -exec rm -rf {} \;

但如果不存在,我會收到此錯誤:

查找:/path/to/dir/*:沒有這樣的文件或目錄

另外,我使用 .find而不是普通的rm,因為有太多目錄rm需要處理,並且必須單獨使用find.

我還注意到,find /path/to/dir/ -maxdepth 1 -type d -exec rm -rf {} \;沒有萬用字元實際上也會刪除dir目錄。

您可以使用-mindepthfind 中的參數,以防止它.在目標目錄中匹配。這應該可以解決您的問題。

find /path/to/dir/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} +

引用自:https://unix.stackexchange.com/questions/83433