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

时间:2018-08-22 12:14:48

标签: bash

我有以下脚本:

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)有关。

是否可以使用符号链接路径使其工作?

1 个答案:

答案 0 :(得分:0)

如果您认为符号链接是问题,请使用readlink -f,例如:

if [ -e "$(readlink -f "/home/$USER/works/bash/mv-to-parent.sh")" ] ; then
    # do something...
else
    echo "not found"
fi

但是,我不确定它将解决您的问题。 -h-Lall file-based tests should already dereference symbolic links除外。