Bash中文件测试的区别

时间:2014-02-06 13:43:36

标签: bash

我正在对现有的Bash脚本进行故障排除,并且在脚本中它有两个测试:

if [ ! -s <file_location> ] ; then
   # copy the file to the file_location
   if [ -s <file_location> ] ; then
   # operate on the file
   fi
fi

根据Bash Tutorial-s测试文件的大小是否为零。用! -s替换-e测试会更好吗?我可以理解第二个嵌套测试是-s,但第一个似乎可以用-e替换。 ! -s vs -e的优势是什么?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

如果文件存在但是为空,则-e将通过,但该文件可能没用。使用! -s可确保文件存在包含有用的内容。