如何(非遞歸地)測量目錄中所有(隱藏和非隱藏)資料夾的大小?

如何(非遞歸地)測量目錄中所有(隱藏和非隱藏)資料夾的大小?

somedir我有一個包含兩個子目錄的父目錄.hiddenDirnotHidden.

我想非遞歸地測量全部中的子目錄somedir

我怎麼能在 Unix 中做到這一點?


我想要的圖片:

在此輸入影像描述

失敗的嘗試:

以下du基於指令僅傳回可見目錄:

du -sh *

儘管

du -sh .*

只回傳隱藏目錄。


我怎樣才能返回尺寸全部像圖片中的目錄?

答案1

使用 GNU du

du -hd1

(它還報告磁碟使用情況,.其中子目錄報告的磁碟使用情況以及當前目錄中非目錄檔案的磁碟使用情況總和)。

zsh和 任何du:

du -sk -- *(/D)

(以千位元組為單位)。

無論如何,雖然這不會報告深度2或以下目錄及其內容的磁碟使用情況,但這些目錄的磁碟使用情況仍然包含在頂級目錄報告的磁碟使用情況中(換句話說,有遞迴).

這就是它的潛在意義之一尺寸一個目錄的。換句話說,如果要刪除該目錄及其內容,這就是將回收的磁碟空間(假設這些文件在這些目錄之外沒有硬鏈接,並且它們的數據沒有在外部的其他文件中引用(可能是部分)這些目錄),請注意,它通常與報告的文件本身(包括目錄文件)的表觀大小總和不同ls -l

答案2

Du 接受多個參數 - 事實上,* 在傳遞給 du 之前已由 shell 擴展。這就是您需要做的全部。

du -sh * .??*

請注意,這將丟失以單一字元命名的檔案或目錄.- 例如,名為.a.

.??*用於跳過...,它們是當前目錄和父目錄的連結。

相關內容