2013-02-04 54 views

回答

2

您只是缺少-l選項至ls

ls -l | grep -P "$1" | awk '{ x += $5 } END { print "total bytes:" x }' 
+0

這一行,像[0-9]這樣的參數正在返回當前目錄中所有文件的大小。任何關於如何從reg expr過濾文件的建議? –

+0

@AntonioFalcone:是不是'grep -P「$ 1」'應該過濾出來? –

+0

現在工作正常,我的錯。謝謝 –

2

du可以幫助你;它有一個-c標誌用於顯示「總計」。它會產生一個包含總大小的最後一行,然後是總字數。因此,下面的應該給你在爲你的選擇總字節大小:

du -bc yourFilePattern | awk 'END {print $1}' 

編輯:

如果像*pattern*是不夠的,你需要一個正則表達式,只需使用:

ls | grep -P "$regex" | xargs du -bc | awk 'END {print $1}' 
+0

'du'計數文件塊,而不是字節,除非使用'--apparent-size -b'。 – Barmar

+0

@Barmar:我添加了'-b'標誌以輸出字節。謝謝 ! –

+0

您還需要'--apparent-size'。 – Barmar