Disk-Usage
具有更細粒度的人類可讀的“du”
我有時希望人類可讀的
du -h
選項更加細粒度,同時仍然是人類可讀的。而不是顯示:
14G
它會顯示類似:
14G 236M 788k 110b
有沒有簡單/直接/標準的方法來獲得這個?
好吧,似乎還沒有簡單/直接/標準的方法來做到這一點。
替代選項是(感謝 ridgy的、Carpette的、Weijun Zhou的和drl的評論 :):
- 在 bash/awk/python/等中編寫一個專用的小型轉換器實用程序,以便:
$ echo "789456" | utility 770K 976o
然後通過管道將其轉換為
du
輸出。你可以從這個相關的 問題中得到啟發。如果它執行良好,它還可以解析任何通過管道傳輸給它的命令的輸出,例如:$ du -s | utility $ ls -la | utility
您甚至可以在您的機器上將其永久別名為:
duH() du -s $@ | utility
- **優點:**易於用您喜歡的任何語言編寫。
- **缺點:**難以適應任何命令選項(
du -s
,du -hc
,du --si
)。必須解析任何命令輸出 (ls -lah
,rsync
) 以查找表示字節的數字字元串,並在不破壞佈局的情況下進行轉換。
進入
coreutils
原始碼並添加適合您需求的新相關選項。你可能不得不看一眼./lib/human.c
. 然後一旦修改,這將是 , 的問題,./configure
因此您 的機器上的現在將實施此選項。make``make install``du
- **優點:**非常簡單,快速且集成。可以作為標準的未來更新檔提供
du
嗎?- **缺點:**您必須先了解現有
C
程式碼並理解它,以免破壞它。您必須在coreutils
需要使用它的任何機器上重新安裝您自己的版本。現在,我不會很快進入這個。無論如何,請隨時在此處發布您自己的解決方案或替代解決方法:)