Как вы перечисляете все символические ссылки в каталоге, который имеет не висящие ссылки?
Я хотел бы получить список всех символических ссылок в каталоге, который имеет действительные ссылки. Другими словами, я бы хотел, чтобы все неработающие ссылки были удалены из моего списка.
1 ответ
Решение
В ракушке, [ -L "$f" ] && [ -e "$f" ]
Истинно, если и только если "$f" - это имя символической ссылки, цель которой существует. Так:
for f in *; do
if [ -L "$f" ] && [ -e "$f" ]; then
# do something with "$f"
fi
done
(Никогда не используйте -a
или же -o
варианты test
/[
...]
; на них нельзя полагаться, чтобы иметь здравый приоритет.)