shell 及相关 / 未分类 · 2014年1月7日

Linux Shell命令判断文件是否为空

平时判断一下文件是不是存在用得比较多 今天遇到要一个判断一个文件是否为空的 一开始还以为是 -z the length of STRING is zero
测试了一下才知道有问题 真是毁三观,原来我们说的空 和系统认的空 -z 完全不是同一回事
## shell note
man test
-s FILE
FILE exists and has a size greater than zero
-z STRING
the length of STRING is zero
Linux Shell命令判断文件是否为空:
if [ $(stat -c %s 某某文件名) -eq 0 ]; then
echo “empty”
else echo “not empty”
fi

[root@linux /data/tmp/evan]# rm /data/tmp/configtest
[root@linux /data/tmp/evan]# touch /data/tmp/configtest
[root@linux /data/tmp/evan]# echo $(stat -c %s /data/tmp/configtest)
[root@linux /data/tmp/evan]# echo “”> /data/tmp/configtest
[root@linux /data/tmp/evan]# file /data/tmp/configtest
/data/tmp/configtest: very short file (no magic)
echo “” 是输出一个空行,所以abc 文件不是空的
http://bbs.ywwd.net/read-25
条件测试:test
http://learn.akae.cn/media/ch31s05.html
Shell脚本学习-命令行参数处理
http://blog.csdn.net/li385805776/article/details/16981541
http://blog.sina.com.cn/s/blog_5b37dc680100sliz.html
http://www.linuxnote.org/test-determines-whether-the-file-is-empty.html