shell判断文件大小的方法
在Linux系统中,我们经常需要对文件进行操作,例如查看文件大小、删除文件等,判断文件大小是一个常见的需求,在shell中,我们可以使用stat
命令或者du
命令来判断文件大小,下面我们分别介绍这两种方法。
1、使用stat
命令判断文件大小
stat
命令是Linux系统中的一个用于显示文件状态信息的命令,通过-c
选项,我们可以获取到文件的字节数,从而判断文件大小,具体用法如下:
file_size=$(stat -c%s "文件路径") echo "文件大小为:$file_size 字节"
%s
表示文件的大小(以字节为单位),"文件路径"
需要替换为实际的文件路径。
2、使用du
命令判断文件大小
du
命令是Linux系统中的一个用于估算目录或文件所占空间的命令,通过-h
选项,我们可以以人类可读的格式显示文件大小,具体用法如下:
file_size=$(du -h "文件路径") echo "文件大小为:$file_size"
-h
选项表示以人类可读的格式显示文件大小,"文件路径"
需要替换为实际的文件路径。
相关问题与解答
问题1:如何将上述两种方法封装成一个完整的脚本?
答:我们可以将上述两种方法封装成一个名为check_file_size.sh
的脚本,具体代码如下:
!/bin/bash check_file_size.sh if [ $ -ne 1 ]; then echo "Usage: $0 <file_path>" exit 1 fi file_path=$1 file_size=$(stat -c%s "$file_path") || file_size=$(du -h "$file_path") echo "文件大小为:$file_size 字节"
使用方法:将上述代码保存为check_file_size.sh
,然后在终端中运行chmod +x check_file_size.sh
使其具有可执行权限,之后,可以使用./check_file_size.sh <file_path>
来检查指定文件的大小。
问题2:如何将脚本中的输出结果重定向到一个日志文件中?
答:我们可以使用重定向符>
将脚本中的输出结果重定向到一个日志文件中,我们可以将上述脚本修改为以下形式,将输出结果重定向到file_size.log
文件中:
!/bin/bash check_file_size.sh if [ $ -ne 1 ]; then echo "Usage: $0 <file_path>" > file_size.log exit 1 fi file_path=$1 file_size=$(stat -c%s "$file_path") || file_size=$(du -h "$file_path") > file_size.log && echo "文件大小为:$file_size 字节" >> file_size.log || echo "无法获取文件大小" >> file_size.log
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/155225.html