linux shell判断文件是否为空内容
时间: 2024-12-18 15:36:20 浏览: 24
在Linux shell中,可以使用`test`或`[[ ... ]]`操作符以及文件描述符来判断文件是否为空。以下是几种常见方法:
1. 使用`test`命令[^1]:
```shell
if test -s file.txt; then
echo "File is not empty"
else
echo "File is empty"
fi
```
这里的 `-s` 表示检查文件是否有内容。
2. 使用`[[ ... ]]`表达式:
```shell
if [[ ! -s file.txt ]]; then
echo "File is empty"
else
echo "File is not empty"
fi
```
3. 使用`cat`命令检查标准错误输出(如果文件为空,`cat`会立即退出并返回非零状态码)[^2]:
```shell
if cat file.txt > /dev/null 2>&1 && [[ $? -eq 0 ]]; then
echo "File is empty"
else
echo "File is not empty"
fi
```
这里通过重定向输出到 `/dev/null` 并检查结果的退出状态码来判断。
相关问题
linux shell 判断*.gz 文件是否存在,不存在打印信息
可以使用以下的 shell 脚本代码来判断 *.gz 文件是否存在:
```shell
if [ -e *.gz ]; then
echo "The *.gz file exists."
else
echo "The *.gz file does not exist."
fi
```
在上面的代码中,`-e` 参数用来判断文件是否存在,`*.gz` 表示匹配当前目录下所有的 `*.gz` 文件。如果该文件存在,则输出 "The *.gz file exists.",否则输出 "The *.gz file does not exist."。
阅读全文