Bash

匯總所有文件大小

  • April 20, 2019

我是 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

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