Bash

如何在 bash 腳本中獲取文件的大小?

  • December 9, 2021

如何在 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 -f1POSIX 指定,因此可移植到任何 Unix 系統。

例如,Solaris 附帶 bash 但不附帶stat. 所以這並不完全是假設的。

ls有一個類似的問題是沒有指定輸出的確切格式,所以解析它的輸出不能移植。 du -h也是一個 GNU 擴展。

在可能的情況下堅持使用攜帶式結構,您將在未來讓某人的生活更輕鬆。也許是你自己的。

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