如何检查linux中是否存在符号链接和目录

时间:2015-08-18 07:04:32

标签: linux bash symlink

我有符号链接

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

但它不起作用..

任何领导都表示赞赏。

1 个答案:

答案 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。

上测试的
相关问题