如何在Linux/Unix bash shell脚本中检查文件大小
时间:2020-01-09 10:40:01 来源:igfitidea点击:
如何在bash shell脚本中找出文件的大小并将此文件大小存储在bash shell变量中?
您无法使用内部或内置命令在bash脚本中获取文件的大小。
最好在Linux下使用stat和其他命令来检查文件大小。
stat命令显示有关文件的信息,包括文件的大小。
另一种选择是使用wc命令,该命令可以计算每个给定文件中的字节数。
让我们看看如何使用这两个命令来检查Linux或类Unix系统中文件的大小。
如何使用wc命令检查Unix中的文件大小
wc命令显示文件中包含的行数,字数和字节数。
获取文件大小的语法如下:
wc -c /path/to/file wc -c /etc/passwd
输出示例:
5253 /etc/passwd
您可以使用cut或awk命令轻松提取第一个字段:
wc -c /etc/passwd | awk '{print }'
输出示例:
5253
或将此大小分配给bash变量:
myfilesize=$(wc -c "/etc/passwd" | awk '{print }') printf "%d\n" $myfilesize echo "$myfilesize"
使用stat命令获取bash脚本中文件的大小
stat命令显示有关文件的信息。
语法如下,以获取GNU/Linux统计信息中的文件大小:
stat -c %s "/etc/passwd"
或者
stat --format=%s "/etc/passwd"
将此大小分配给bash变量:
myfilesize=$(stat --format=%s "/etc/passwd") echo "$myfilesize" ## 或者 myFileSizeCheck=$(stat -c %s "/etc/resolv.conf") printf "My file size = %d\n" $myFileSizeCheck
语法如下,以获取BSD/MacOS统计信息中的文件大小:
stat -f %z "/etc/passwd"
请注意,如果文件是符号链接,则只能使用stat命令获得该链接的大小。
使用du命令检查文件大小
如何使用bash/ksh/zsh/sh/tcsh shell检查文件的大小?
语法是
du --apparent-size --block-size=1 "/etc/passwd" fileName="/etc/hosts" mfs=$(du --apparent-size --block-size=1 "$fileName" | awk '{ print }') echo "$fileName size = ${mfs}"
使用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."