我刚刚找到了几个使用[ -a some_dir ]or的示例,[ -a some_file ]但找不到-a运算符的用途。似乎它应该在test/的手册页中进行描述,[但它只是作为一个比较运算符[ $expr1 -a $expr2 ]。如果文件或目录存在,无论类型如何,它似乎只是返回 true。
在bash和其他一些 shell 中,-a是-e(true if file exists)的同义词。
$ help test
...
-a FILE True if file exists.
...
-e FILE True if file exists.
Run Code Online (Sandbox Code Playgroud)
这是非标准的,并非所有 shell 都支持,因此您最好不要依赖它。
注意的联机帮助test(1)文件的外部命令(/usr/bin/test,/usr/bin/[,等),而不是shell内置。