Bash
如何在 bash 腳本中獲取文件的大小?
如何在 bash 腳本中獲取文件的大小?
如何將其分配給 bash 變數以便以後使用?
如果在 GNU 系統上,您最好的選擇:
stat --printf="%s" file.any
從人統計:
%s 總大小,以字節為單位
在 bash 腳本中:
#!/bin/bash FILENAME=/home/heiko/dummy/packages.txt FILESIZE=$(stat -c%s "$FILENAME") echo "Size of $FILENAME = $FILESIZE bytes."
注意:有關如何在 Mac OS X 上的終端中使用 stat 的資訊,請參閱@chbrown 的答案。
file_size_kb=`du -k "$filename" | cut -f1`
使用的問題
stat
在於它是一個 GNU (Linux) 擴展。du -k
並由cut -f1
POSIX 指定,因此可移植到任何 Unix 系統。例如,Solaris 附帶 bash 但不附帶
stat
. 所以這並不完全是假設的。
ls
有一個類似的問題是沒有指定輸出的確切格式,所以解析它的輸出不能移植。du -h
也是一個 GNU 擴展。在可能的情況下堅持使用攜帶式結構,您將在未來讓某人的生活更輕鬆。也許是你自己的。