shell 中 -f 和 -e 有什么区别?
我知道
-e :检查文件名是否存在
-f :检查文件是否存在
但是,他们之间有什么区别?
修改:
我特别关注这段代码:
if [ -e test.sh ]; then
echo "Yes";
else
echo "No";
fi
if [ -f test.sh ]; then
echo "Yes";
else
echo "No";
fi
两者都打印是。
答案 0 :(得分:2)
-f
与-e
类似,但它还检查名称是指普通文件(而不是目录,套接字等)。
请参阅man 2 stat
中st_mode
/ S_IFMT
的说明,了解可能的文件类型列表。