Uruchamiam find
i przeglądam wyniki z [ \(-L $F \) ]
, aby zebrać określone dowiązania symboliczne.Jak wykryć, czy dowiązanie symboliczne jest uszkodzone w Bash?
Zastanawiam się, czy istnieje prosty sposób określenia, czy link jest uszkodzony (wskazuje na nieistniejący plik) w tym scenariuszu.
Oto mój kod:
FILES=`find /target/ | grep -v '\.disabled$' | sort`
for F in $FILES; do
if [ -L $F ]; then
DO THINGS
fi
done
Pamiętaj, że kod zostanie również wykonany, jeśli plik w ogóle nie istnieje. Jest dobrze z 'find', ale w innych scenariuszach (takich jak globs) należy połączyć z -h, aby obsłużyć tę sprawę, na przykład' [-h "$ F" -a! -e "$ F"] '. – Calimo
Naprawdę nie testujesz dowiązania symbolicznego z tym podejściem. –
@ Calimo Nie ma różnicy. – Melab