Linux

搜尋/顯示文件大小

  • March 8, 2019

有沒有一種簡單的方法可以查看目錄並說,對於每個以 az 開頭的文件,列印這些文件的總大小?

例如

for i in {97..122}; du (something); done

即輸出>>

a- 123kb

b- 22kb

z- 1245kb

這可以通過萬用字元來實現

$ du [a-z]*
456 asdf.png
12  awk.trace
28  blink_image_resources_200_percent.pak
0   Books

請注意,如果由 glob 擴展的項目是目錄,du則將遍歷該目錄的內容,因此如果您只關心目錄的總大小而不關心項目的單個列表,您可能想要執行du -s [a-z]*. 如果您想要人類可讀的後綴,例如kor M,請使用-h選項。

當然,shell 喜歡bashksh具有更細粒度的模式匹配, bash具有extglobshell 選項和globstar遞歸遍歷以匹配文件名。find命令也可用於遞歸和細粒度的文件名匹配,甚至排除目錄,如

find . -maxdepth 1 -mindepth 1 -type f -exec du -s {} \;

還值得注意的是,大括號擴展如{0..9}不執行路徑名擴展,即*擴展為目錄中已存在的內容,{0..9}擴展為目前工作目錄中可能存在或不存在的標記列表。

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