作為是一個新的bash shell腳本用戶。我如何找出bash shell腳本中文件的大小,並將其存儲在bash shell變量中?
你不能使用內部或內置的命令來獲取bash腳本中文件的大小。最好使用Linux下的stat等命令來檢查文件大小。stat命令可以顯示文件的信息,包括文件的大小。另一個選擇是使用wc命令,它可以計算每個給定文件的字節數。讓我們看看如何在Linux或類似Unix的系統中使用這兩個命令來檢查文件的大小。
1、如何使用wc命令檢查Unix中的文件大小
wc命令顯示文件中包含的行數,字數和字節數。獲取文件大小的語法如下:
wc -c /path/to/file
wc -c /etc/passwd
示例輸出:
5253 /etc/passwd
您可以使用cut或awk命令輕松提取第一個字段:
wc -c /etc/passwd | awk '{print $1}'
示例輸出:
5253
或者將這個大小分配給一個bash變量:
myfilesize=$(wc -c "/etc/passwd" | awk '{print $1}')
printf "%d\n" $myfilesize
echo "$myfilesize"
2、使用stat命令獲取bash腳本中文件的大小
stat命令顯示有關文件的信息。語法如下,以獲取GNU / Linux stat 上的文件大小:
stat -c %s "/etc/passwd"
或者
stat --format=%s "/etc/passwd"
將此大小分配給bash變量:
myfilesize=$(stat --format=%s "/etc/passwd")
echo "$myfilesize"
## or ##
myFileSizeCheck=$(stat -c %s "/etc/resolv.conf")
printf "My file size = %d\n" $myFileSizeCheck
語法如下,以獲取BSD/MacOS stat上的文件大小:
stat -f %z "/etc/passwd"
請注意,如果文件是symlink,則只能使用stat命令獲得該鏈接的大小。
3、使用du命令檢查文件大小
語法是
du --apparent-size --block-size=1 "/etc/passwd"
fileName="/etc/hosts"
mfs=$(du --apparent-size --block-size=1 "$fileName" | awk '{ print $1}')
echo "$fileName size = ${mfs}"
4、使用find命令獲取文件大小
find命令的語法如下:
find "/etc/passwd" -printf "%s"
find "/etc/passwd" -printf "%s\n"
fileName="/etc/hosts"
mysize=$(find "$fileName" -printf "%s")
printf "File %s size = %d\n" $fileName $mysize
echo "${fileName} size is ${mysize} bytes."
至此,學習了如何使用各種命令行實用程序在Linux或類似Unix的系統中檢查文件大小。
