我试图确定文件或目录是否不存在。我尝试了下面的命令来查看文件是否存在,并且它们工作正常:
if [ -a 'settings.py' ]; then echo 'exists'; fi
exists #output
if [ -a 'foo' ]; then echo 'exists'; fi #outputs nothing
但是当我尝试这个:
if [ ! -a 'settings.py' ]; then echo 'does not exist'; fi
does not exist #shouldn't be output since the file does exist
if [ ! -a 'foo' ]; then echo 'does not exist'; fi
does not exist
“不存在”是什么输出。
最佳答案
尝试使用-e
代替-a
Linux Documentation Project上的这一页说:-a
在效果上与-e
相同。但它已被弃用,而且不鼓励使用。
关于bash - bash的奇怪性不是运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3809746/