מציאת קישורים סימבוליים שבורים
לפעמים אני צריך למצוא את כל הקישורים הסימבוליים השבורים בתיקייה, רקורסיבית או לא. find(1) הוא
הכלי הנכון ביוניקס לכל מה שקשור למציאת קבצים, אבל אין לו אפשרות מפורשת של
-and -type brokenlink...
חלק מהפתרונות כוללים העברת הפלט של find(1) לכלי אחר. הפתרונות האלה אינם אופטימליים, משום
שברגע שעוזבים את הנוחות של find(1) מוותרים על היכולת להשתמש בהרבה מהיכולות המצוינות שלו
ונתקלים בבעיות אחרות (שמות קבצים עם רווחים, למשל).
פתרונות אחרים כוללים find -L . -type l, שמכריח את find(1) לעקוב אחרי כל הקישורים הסימבוליים
ובסופו של דבר להדפיס רק את אלה שאינו מצליח לעקוב אחריהם. לפתרון הזה יש חסרונות אחרים. האחד הוא
שלא בהכרח רוצים ש־find(1) יעקוב אחרי כל קישור סימבולי, מכיוון שזה עלול לגרום לו לנדוד לאזורים
ענקיים בכונן הקשיח שאין לכם כוונה לסרוק. חיסרון נוסף הוא שיש הבדל בין קישור סימבולי שאי אפשר
לעקוב אחריו לבין כזה שאי אפשר לקרוא.
הפתרון שלי הוא זה:
find . -type l -and -not -exec test -e {} \; -print