如何在Linux / Unix bash shell脚本中检查文件大小

作为是一个新的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 " $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 " $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 "
fileName="/etc/hosts"
mysize=$(find "$fileName" -printf "%s")
printf "File %s size = %d " $fileName $mysize
echo "${fileName} size is ${mysize} bytes."
至此,学习了如何使用各种命令行实用程序在Linux或类似Unix的系统中检查文件大小。

A5互联https://www.a5idc.net/

原文地址:https://www.cnblogs.com/a5idc/p/13488730.html