从符号链接路径测试文件是否存在



我有以下脚本:

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,所有基于文件的测试都应该已经取消引用符号链接。

最新更新