如何列出具有非挂起链接的目录中的所有符号链接?

时间:2012-02-10 23:48:05

标签: linux bash symlink symlink-traversal

我想获得一个包含有效链接的目录中所有符号链接的列表。换句话说,我希望在我的列表中丢弃所有损坏的链接。

1 个答案:

答案 0 :(得分:3)

在shell中,[ -L "$f" ] && [ -e "$f" ]为真,当且仅当“$ f”是其目标存在的符号链接的名称时。所以:

for f in *; do
    if [ -L "$f" ] && [ -e "$f" ]; then
        # do something with "$f"
    fi
done

(绝不要将-a-o选项用于test / [ ... ];不能依赖它们才能拥有理智的优先权。 )