检查符号链接是否损坏或不存在

检查符号链接是否损坏或不存在

尝试创建一个if语句来检查文件是否是有效的符号链接(意味着它也存在)。

我试过:

[ -h "$1" -a ! -e "$1" ]

...但这不起作用。如果文件不是有效的符号链接,或者根本不存在,我想执行代码。

答案1

如果中的名称$1是有效的符号链接,则-e测试为真。如果它是损坏的符号链接,则-e测试将失败。如果 in 中的名称$1根本不存在,则测试也会失败。

因此,要测试$1符号链接是否损坏,或者如果它根本不存在,那么使用就足够了

if [ ! -e "$1" ]; then ...; fi

你的测试最好是在没有已弃用 -a作为

if [ ! -e "$1" ] && [ -h "$1" ]; then ...; fi

这测试$1现有的符号链接是否已损坏。

您想测试有效的符号链接吗,请使用

if [ -e "$1" ] && [ -h "$1" ]; then ...; fi

相关内容