
如何在 UNIX 命令列中尋找檔案大小(以 MB 為單位)?
答案1
如果您的ls
支援--block-size
(例如 GNU coreutils)ls
支援:
ls -s --block-size=1048576 filename | cut -d' ' -f1
答案2
du -h file
或者
ls -lh file
編輯
這個答案是錯誤的,因為它也可以以 Gb/Kb 為單位報告大小,這取決於檔案的大小。請刪除贊成票。
答案3
我傾向於使用“du -k myfile”來獲取千字節並在視覺上刪除最後三位數字,但我只是在尋找大概的大小。
結果 du 經常(總是?)有 MB 的 -m 選項。
請記住,檔案的大小可能與使用的磁碟空間量略有不同,因為磁碟分配以區塊而不是位元組為單位。
如果您因為磁碟空間不足而正在尋找「胖」文件,那麼這將是一個更具啟發性的問題,因為解決方案會更加多樣化。
答案4
stat
可以做到這一點。
$ ls -l | grep myfile
-rw------- 1 rory rory 3120 2009-07-02 16:58 myfile
$ stat -c '%s' myfile
3120
以位元組提供給您。
您可以使用 bash 的算術來計算兆位元組:
$ echo $(( $( stat -c '%s' myfile ) / 1024 / 1024 ))
0
(但在這種情況下它會四捨五入)