Linux
執行 du -hs 時出錯。!.!.!.*
我想查看所有目錄的大小,包括隱藏目錄。我遇到的一個命令是:
du -hs .[!.]*
但它給了我錯誤:
du: cannot access ‘.[!.]*’: No such file or directory
我無法弄清楚我做錯了什麼。
您收到的錯誤意味著目前目錄中沒有隱藏文件或目錄。
.[!.]*
擴展以匹配名稱以“.”開頭的任何文件或目錄 後跟除“.”以外的任何內容;如果它不匹配任何內容,則預設保持原樣。因此,在您的情況下,du
它作為其參數執行.[!.]*
,而不是真實的文件或目錄名稱,它會產生您所看到的錯誤消息。您可以在此處啟用
nullglob
更改 shell 的行為:shopt -s nullglob
然後,shell 將刪除不匹配的模式,並
du
在沒有匹配的情況下報告目前目錄的使用情況(這是在沒有參數的情況下的預設行為)。為了實現你所追求的,在 Bash 中,你應該這樣做:
du -sh .[!.]*/ */
這將擴展到目前目錄中的所有目錄,包括隱藏目錄。如果
nullglob
未啟用,它仍然會產生錯誤消息,但您會看到任何匹配的目錄的大小。