Tôi chạy find
và lặp qua các kết quả với [ \(-L $F \) ]
để thu thập các liên kết tượng trưng nhất định.Làm cách nào để phát hiện xem một liên kết tượng trưng có bị hỏng trong Bash không?
Tôi tự hỏi nếu có một cách dễ dàng để xác định xem liên kết có bị hỏng hay không (chỉ vào tệp không tồn tại) trong trường hợp này.
Đây là mã của tôi:
FILES=`find /target/ | grep -v '\.disabled$' | sort`
for F in $FILES; do
if [ -L $F ]; then
DO THINGS
fi
done
Lưu ý rằng mã cũng sẽ được thực thi nếu tệp đó không tồn tại. Nó là tốt với 'find' nhưng trong các kịch bản khác (như globs) nên được kết hợp với -h để xử lý trường hợp này, ví dụ' [-h "$ F" -a! -e "$ F"] '. – Calimo
Bạn không thực sự thử nghiệm liên kết tượng trưng với cách tiếp cận này. –
@Calimo Không có sự khác biệt. – Melab