דרכים להשתמש בפקודת 'find' כדי לחפש ספריות בצורה יעילה יותר

דרך המדריך הזה תלמד את הדרכים השונות למצוא ספרייה בלינוקס. כפי שייתכן שאתה כבר יודע, בלינוקס הכל הוא קובץ כולל ספריות. ואחד הדברים הנפוצים שמשתמש לינוקס יעשה בשורת הפקודה הוא חיפוש אחר קובץ או ספרייה.

יש מספר שיטות וכלי שונים המשמשים לחיפוש אחר קבצים בשורת הפקודה כגון find, locate ו-which. עם זאת, הכלי האחרון (which) משמש רק לאיתור פקודה.

לצורך המדריך הזה, נתמקד בעיקר ב-כלי ה-find, שמחפש קבצים במערכת הלינוקס החיים ויעיל יותר ואמין יותר בהשוואה ל-locate.

החסרון של locate הוא שהוא קורא מספר מסדי נתונים שנוצרו על ידי updatedb, הוא אינו חופשי במערכת הלינוקס החיים. בנוסף, הוא גם לא מספק גמישות בנוגע למקום שבו לחפש ממנו (נקודת ההתחלה).

להלן התחביר לריצת locate פקודה:

# locate [option] [search-pattern]

להדגים את החסרון של לאתר, נניח שאנו מחפשים ספרייה בשם pkg בתיקיית העבודה הנוכחית.

הערה: בפקודה שלמטה, האפשרות --basename או -b אומרת ל־לאתר להתאים רק לשם הקובץ (הספרייה) (שהוא בדיוק pkg) אך לא לנתיב (/path/to/pkg). כאשר \ הוא תו גלובינג, הוא מבטל את החלפת pkg ב־*pkg*.

$ locate --basename '\pkg'
Find Directory Using locate Command

כפי שניתן לראות מפלט הפקודה למעלה, לאתר יחפש מהתחלה מתוך התיקייה הראשית (/), ולכן תימצאו תיקיות אחרות עם אותו שם.

לכן, כדי להתמודד עם בעיה זו, יש להשתמש ב־find על פי התחביר הפשוט שלמטה:

$ find starting-point options [expression]

נבחן כמה דוגמאות.

כדי לחפש את אותה ספרייה (pkg) למעלה, בתיקיית העבודה הנוכחית, יש להריץ את הפקודה הבאה, כאשר הדגל -name קורא לביטוי שבמקרה זה הוא שם הספרייה.

$ find . -name "pkg"

אם תתקלו בשגיאות "הרשאה נדחית", יש להשתמש ב־פקודת sudo כך:

$ sudo find . -name "pkg"
Search a Directory Using find Command

ניתן למנוע מ־find לחפש סוגי קבצים אחרים מלבד ספריות על ידי שימוש בדגל -type כדי לציין את סוג הקובץ (בפקודה למטה d מציין ספרייה) כך:

$ sudo find . -type d -name "pkg"

כמו כן, אם ברצונך לרשום את הספרייה בפורמט רשימה ארוכה, השתמש במתג הפעולה -ls:

$ sudo find . -type d -name "pkg" -ls
Find and List Directory

לאחר מכן, האפשרות -iname תאפשר חיפוש באופן לא תלוי רישיות:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 
Find Directory with Case Sensitive

כדי למצוא מידע נוסף ומתקדם, קרא את דפי העזר של find ו־locate.

$ man find
$ man locate

כתובת ה־find command היא יותר אמינה ויעילה לחיפוש קבצים (או ספריות) במערכת Linux בהשוואה ל־locate.

בדיוק כמו קודם, אל תשכח לשלוח לנו משוב או שאלות דרך חלק ההערות למטה. לבסוף, תישארו מחוברים תמיד ל־Tecmint.

Source:
https://www.tecmint.com/find-directory-in-linux/