Bash
匯總所有文件大小
我是 bash 新手,我需要做一個小腳本來總結所有文件大小,不包括子目錄。我的第一個想法是在您這樣做時保留這些列
ls -l
。我不能使用 grep、du 或我在這裡看到的其他高級命令。$9 對應於顯示名稱的第 9 列。
$5 是文件的大小。
ls -l | awk '{if(-f $9) { total +=$5 } }; END { print total }
使用 GNU find 和 awk:
find . -maxdepth 1 -type f -printf "%s\n" | awk '{sum+=$1} END{print sum+0}'
輸出是以字節為單位的文件大小。最後的語句
print sum+0
不僅僅是print sum
處理沒有文件的情況(即0
在這種情況下正確列印)。這是做的替代方案BEGIN {sum=0}
。
使用
wc
:wc -c * 2> /dev/null
如果只需要總數,請執行以下操作:
wc -c * 2> /dev/null | tail -1