我有符号链接
data -> /application/madat/gold/gold_lock/Methods96/../data
我想检查符号链接是否存在,并且使用shell脚本存在该目录。
我试过这个:
#!/bin/bash
if [[ -h data && data -ef application/madat/gold/gold_lock/Methods96/../data ]]; then echo it exists; else echo it does not; fi
但它不起作用..
任何领导都表示赞赏。
答案 0 :(得分:4)
您可以尝试这样的事情
if [[ -L "data" && -d "$(readlink data )" ]]; then
echo "both exists"
else
echo "symlink or directory does not exist"
fi
-L
将测试它是否为符号链接,然后-d
将查看符号链接后面的目录是否存在。
如果目录路径中可以有其他符号链接,请使用readlink -f
更新:忘了说-h
和-L
是等价的,但我发现第二个更容易记住。这是在ubuntu,btw。