使用 ls
命令查看文件大小
ls -l 文件名
- 结果解读:
若输出中文件大小为0
(如-rw-r--r-- 1 user group 0 Jan 1 12:00 file.txt
),则文件为空。 - 优点:简单直观,可同时查看多个文件。
- 缺点:需人工观察大小值,不适合脚本自动化。
使用 wc
命令统计字符数
wc -c 文件名
- 结果解读:
输出为0 文件名
(如0 file.txt
)时,文件为空。 - 原理:
-c
选项统计文件字节数,0 表示无内容。 - 脚本适用:结合条件判断(如
if [ $(wc -c < file) -eq 0 ]; then ...
)。
使用 test
命令(或 [ ]
)直接判断
test -s 文件名 # 或 [ -s 文件名 ] echo $? # 检查返回值
- 结果解读:
- 返回值为
1
:文件为空(-s
检测文件是否非空,失败则为空)。 - 返回值为
0
:文件非空。
- 返回值为
- 脚本推荐:
if [ ! -s "file.txt" ]; then echo "文件为空" fi
使用 stat
命令查看精确大小
stat -c %s 文件名
- 结果解读:
输出为0
时文件为空(如stat -c %s empty.txt
返回0
)。 - 优势:精确获取字节大小,支持格式化输出。
使用 cat
或 tac
直接显示内容
cat 文件名 # 无输出则文件可能为空
- 注意:
- 若文件包含不可见字符(如空格),可能显示空白但实际非空。
- 需结合其他方法(如
wc
)验证。
使用 du
检查磁盘占用
du -b 文件名
- 结果解读:
输出为0 文件名
时文件为空(-b
显示字节大小)。
特殊场景处理
- 文件名含空格或特殊字符:用引号包裹文件名(如
[ -s "my file.txt" ]
)。 - 隐藏字符问题:
若文件含不可见字符(如\r
、\n
),用cat -A 文件名
检查,空文件应无输出。 - 目录的判断:
以上方法仅适用于文件,目录“为空”需用ls -A 目录名 | wc -l
(结果为0表示无子项)。
如何创建空文件
touch 文件名 # 创建新的空文件 > 文件名 # 清空现有文件内容(保留文件)
总结建议
- 脚本自动化:优先用
[ -s file ]
或wc -c
,返回值直接用于条件判断。 - 人工检查:
ls -l
或stat
更直观。 - 避免误区:空文件大小为0字节,但大小为0的文件不一定是文本文件(可能是二进制空文件)。
引用说明:本文方法基于 GNU Coreutils 标准命令(
ls
、wc
、test
、stat
等),参考 Linux man 手册页(通过man 命令名
查看官方文档),所有命令在主流 Linux 发行版(Ubuntu/CentOS 等)中均默认可用。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9960.html