כיצד להשתמש בפקודה find ב- Linux לחיפוש קבצים?

How Use Find Command Linux Search Files



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

למרות שמסוף לינוקס הוא ממשק טקסט שנראה מורכב, הוא למעשה גמיש מאוד, קל לשימוש וכלי שימושי למדי. ניתן להעתיק פקודות בקלות ממקורות מקוונים ולהדביק אותם במסוף לביצוע פעולות שונות. יש המון פקודות אבל הפוסט הזה יתמקד בפקודת find.







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



בואו נדון כיצד להשתמש בפקודת find, בתחביר שלה ובפעולות שונות המבוצעות על ידי פקודה זו בפירוט.



תחביר של Find Command ב- Linux

תחביר הפקודה find מוצג להלן:





למצוא [נָתִיב] [אפשרויות] [ביטוי]

שלוש תכונות מתאימות לפקודת Find:

  • [נתיב]: הוא מגדיר את הספרייה היכן להתחיל לחפש.
  • [אופציות]: הוא מגדיר את הקריטריונים של סינון למשל חיפוש בקובץ/תיקיה לפי שמו, הרשאתו, השעה או התאריך.
  • [ביטוי]: הוא מגדיר אילו פעולות לבצע עם הקובץ.

כל התכונות שלמעלה הן אופציונאליות מכיוון שניתן להשתמש בהן בהתאם לדרישה.



להדגמה, יצרתי ספריות שונות וכמה קבצי טקסט, עיין בתמונה למטה:

find/1%20copy.png

מציאת קובץ לפי שם

כדי לחפש את הקובץ לפי שם, השתמש בפקודה הבאה:

$למצוא.-שֵׁםMyTextFile1.txt

find/2%20copy.png

הנקודה לאחר מציאה בפקודה למעלה מציינת את הספרייה הנוכחית.

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

$למצוא.-שםmytextfile1.txt

find/3%20copy.png

מציאת קובץ לפי סוג

כדי למצוא קובץ לפי סוגו, השתמש באפשרות -type עם אותיות המוכרות גם כמתארים כגון f עבור קבצים, d עבור ספריות, l עבור הקישור הסמלי ו- s עבור שקעים.

כדי לחפש בכל הספריות השתמש ב:

$למצוא.-סוּגד

find/4%20copy.png

כדי לחפש קבצים, השתמש ב:

$למצוא.-סוּגו

c%20copy.png

מציאת קובץ באמצעות סיומת הקבצים

כדי לחפש את הקובץ לפי תבנית, למשל סיומת קובץ, כגון הצגת כל הקבצים עם .txt, השתמש בפקודה הבאה:

$למצוא.-שֵׁם *.טקסט

find/5%20copy.png

כל הקבצים עם .txt יוצגו יחד עם הספריות המתאימות להם.

איתור ומחיקה של קובץ

כדי לחפש ולמחוק קובץ, השתמש בפקודה הבאה:

$למצוא.-שםmytextfile1.txt-מדויק rm {};

find/6%20copy.png

הפקודה שלעיל תחילה תחפש את הקובץ ולאחר מכן תמחק אותה. התמונה מדגימה כי MyTextFile1 נמחק.

כדי למחוק את כל הקבצים עם סיומת .txt, תוכל להשתמש בפקודה המצורפת:

$למצוא.-שֵׁם *.טקסט-לִמְחוֹק

find/7%20copy.png

מציאת קובץ לפי גודל

הפקודה find יכולה גם לחפש קובץ לפי גודל. פשוט השתמש באפשרות -size יחד עם המתארים שלה כגון b עבור בלוקים של 512 Kb, c עבור בתים, k עבור קילובייט, M ו- G עבור מגה -בתים וג'יגה -בתים בהתאמה:

$למצוא.-סוּגו-גודל -1024c

find/8%20copy.png

הפקודה שהוזכרה לעיל מחפשת את כל הקבצים בגודל של פחות מ -1024 בתים. ניתן לחדד עוד יותר את החיפוש, למשל, אם ברצוננו למצוא את כל הקבצים הנמוכים מ- 1Mb, אנו משתמשים בפקודה הבאה:

$למצוא.-סוּגו-גודל1 מיליון

ab/a%20copy.png

עבור כל הקבצים הגדולים מ- 1Mb, השתמש בפקודה הבאה:

$למצוא.-סוּגו-גודל+מיליון

ab/b%20copy.png

ניתן להגדיר גם טווח גודל באמצעות הפקודה המצורפת:

$למצוא. -סוּגו-גודל+מיליון-גודל10 מיליון

מציאת קבצים לפי הרשאה

כדי לחפש קובץ באישור, נשתמש באפשרות -perm ולאחר מכן בקוד הרשאה, כפי שמוצג להלן:

$למצוא.-זרע 664

find/10%20copy.png

מצא טקסט בתוך קבצי טקסט

כדי למצוא טקסט במספר קבצי טקסט במערכת שלך, השתמש בפקודה המופיעה להלן:

$למצוא.-סוּגו-שֵׁם *.טקסט-מדויק אחיזה'שלום'{};

find/12%20copy.png

הפקודה מחפשת את המילה שלום בקבצי הטקסט. הפלט הוא מחרוזות טקסט מקבצי הטקסט המכילים Hello.

מציאת קובץ לפי תאריך ושעה לשינוי

כדי לגשת לקובץ בשינויו האחרון, השתמש בפקודה הבאה:

$למצוא.-סוּגו-שם *.טקסט-min+10

find/13%20copy.png

הפקודה לעיל מחפשת קובץ ששונה לאחרונה לפני ארבע דקות, ו- m מסמל את השינוי.

$למצוא. -סוּגו-שם *.טקסט-אמין -10

find/14%20copy.png

הפקודה לעיל מחפשת קובץ שאליו הגישו לאחרונה לפני 4 דקות, ו- a in amin מסמן Access. כדי לגשת לקובץ ששונה לפני ארבעה ימים, השתמש ב- -mtime +4 במקום mmin +4.

סיכום

פקודת Find ב- Linux היא פקודה שימושית מאוד המאפשרת לך לחפש קובץ או ספרייה באמצעות קריטריונים שונים, ואף מאפשרת לך לשנות את הקבצים מהטרמינל. במדריך זה, צפינו בתחביר הפקודה find ב- Linux ולמדנו כיצד להשתמש בפקודת find לביצוע פונקציות שונות.