我想获得一个包含有效链接的目录中所有符号链接的列表。换句话说,我希望在我的列表中丢弃所有损坏的链接。
答案 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
/ [
... ]
;不能依赖它们才能拥有理智的优先权。 )