这个
-f
国旗明确表示
bash
文档(我的重点):
如果文件存在,则为True
并且是常规文件
所以我保证你看到的文件是
不
常规文件,尤其是在
/dev
目录,其中所有
种类
的非常规文件往往存在。
例如(在我的系统上,使用字符特殊文件):
pax$ ls -al /dev/rfkill
crw-rw-r--+ 1 root netdev 10, 62 Feb 13 17:49 /dev/rfkill
pax$ [[ -f /dev/rfkill ]] && echo regular || echo not regular
not regular
pax$ [[ -e /dev/rfkill ]] && echo exists || echo does not exist
exists
pax$ [[ -c /dev/rfkill ]] && echo char special || echo not char special
char special
我建议你检查一下这是什么文件
ls -al
并使用适当的
[[
标记(例如,请参见,
CONDITIONAL EXPRESSIONS
在输出中
man bash
).