Linux

執行 du -hs 時出錯。!.!.!.*

  • April 6, 2017

我想查看所有目錄的大小,包括隱藏目錄。我遇到的一個命令是: du -hs .[!.]*

但它給了我錯誤:

du: cannot access ‘.[!.]*’: No such file or directory

我無法弄清楚我做錯了什麼。

您收到的錯誤意味著目前目錄中沒有隱藏文件或目錄。.[!.]*擴展以匹配名稱以“.”開頭的任何文件或目錄 後跟除“.”以外的任何內容;如果它不匹配任何內容,則預設保持原樣。因此,在您的情況下,du它作為其參數執行.[!.]*,而不是真實的文件或目錄名稱,它會產生您所看到的錯誤消息。

您可以在此處啟用nullglob更改 shell 的行為:

shopt -s nullglob

然後,shell 將刪除不匹配的模式,並du在沒有匹配的情況下報告目前目錄的使用情況(這是在沒有參數的情況下的預設行為)。

為了實現你所追求的,在 Bash 中,你應該這樣做:

du -sh .[!.]*/ */

這將擴展到目前目錄中的所有目錄,包括隱藏目錄。如果nullglob未啟用,它仍然會產生錯誤消息,但您會看到任何匹配的目錄的大小。

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