我有以下脚本:
if [ -e "/home/$USER/works/bash/mv-to-parent.sh" ] ; then
# do something...
else
echo "not found"
fi
执行它,我每次收到"未找到"消息时,即使文件在那里;我知道这个问题与"works"文件夹是一个符号链接(/home/$USER/works ->/media/data/works(有关。
是否可以使用符号链接路径使其工作?
如果您认为符号链接是问题所在,请使用readlink -f
,例如:
if [ -e "$(readlink -f "/home/$USER/works/bash/mv-to-parent.sh")" ] ; then
# do something...
else
echo "not found"
fi
但是,我不确定它是否会解决您的问题。除了-h
和-L
,所有基于文件的测试都应该已经取消引用符号链接。