Skip to main content

באמצעות לינוקס יוניקס פיקוד למצוא

מה זה לינוקס ולמה היא עדיפה מווינדוס - #1 Linux Israel (יוני 2026)

מה זה לינוקס ולמה היא עדיפה מווינדוס - #1 Linux Israel (יוני 2026)
Anonim

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

תחביר עבור למצוא פקודה:

למצוא נתיב ביטוי

תיאור

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

הטיעון הראשון שמתחיל ב:

  • -
  • ( או),
  • !

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

ה למצוא הפקודה יוצאת עם סטטוס 0 אם כל הקבצים מעובדים בהצלחה, גדול מ -0 אם מתרחשות שגיאות.

ביטויים

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

אפשרויות

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

-יומי מדוד פעמים (עבור -מימין, בזמן, דקות, דקות, דקות, ו - זמן ) מתחילת היום ולא מלפני 24 שעות.
-depth לעבד את כל התוכן של הספרייה לפני הספרייה עצמה.
-לעקוב אחר הימנעות מקישורים סמליים. מרמז -נולף .
- עזרה או - עזרה הדפס סיכום של השימוש בשורת הפקודה של למצוא ואת היציאה.
-מקסימום עומק מספר צא לכל היותר במספר רמות (מספר שלם שלילי) של ספריות מתחת לארגומנטים של שורת הפקודה. הביטוי -maxdepth 0 פירושו רק להחיל את הבדיקות והפעולות על הארגומנטים של שורת הפקודה.
-mindepth number אין להחיל בדיקות או פעולות ברמות פחות מהמספר (מספר שלם לא שלילי). הביטוי -mindepth 1 פירושו לעבד את כל הקבצים פרט לארגומנטים של שורת הפקודה.
-הר אין לרדת בספריות על מערכות קבצים אחרות. שם חלופי עבור -xdev , עבור תאימות עם כמה גירסאות אחרות של למצוא .
-נולף אל תבצע אופטימיזציה על ידי ההנחה כי ספריות להכיל 2 subdirectories פחות מאשר לספור את הקישור הקשיח. *
Version או - Version הדפס את למצוא מספר גרסה ויציאה.
-xdev אין לרדת בספריות על מערכות קבצים אחרות.

* אפשרות זו דרושה בעת חיפוש במערכות קבצים שאינן עומדות באמנת קישור הספריות של Unix, כגון קובצי CD-ROM או MS-DOS או נקודות טעינה של AFS. כל ספרייה על מערכת הקבצים Unix רגיל יש לפחות 2 קישורים קשים: השם שלה ואת שלה. (נקודה). בנוסף, תיקיות המשנה שלה (אם בכלל) יש. ערך המקושר לספרייה זו.

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

בדיקות

ניתן להגדיר ארגומנטים מספריים כדלקמן:

+ n עבור יותר מ n.
-n עבור פחות מ n.
n בדיוק n.
-amin n הקובץ היה האחרון n לפני דקות.
-יותר קובץ הקובץ היה האחרון גישה יותר לאחרונה קובץ שונתה. -השפעה נוספת מושפעת על-ידי-המשך רק אם -כפי שבא לפני -יותר על שורת הפקודה.
-atime n הקובץ היה האחרון n * לפני 24 שעות.
-minmin n הסטטוס של הקובץ השתנה לאחרונה n לפני דקות.
-יותר קובץ הסטטוס של הקובץ השתנה לאחרונה יותר משהשתנה הקובץ.- יותר מושפע מ -לעקוב אחר רק אם -לעקוב אחר מגיע לפני - עוד יותר על שורת הפקודה.
-ימים n הסטטוס של הקובץ השתנה לאחרונה n * לפני 24 שעות.
-ריק הקובץ ריק והוא גם קובץ רגיל או ספרייה.
- דפוק תמיד שקר.
- סוג סוג הקובץ נמצא במערכת קבצים מסוג מסוים. סוגי מערכות הקבצים החוקיים משתנים בין גרסאות שונות של Unix; רשימה חלקית של סוגי מערכות קבצים המתקבלות בגירסה כלשהי של Unix או אחרת היא: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. באפשרותך להשתמש -פרינט עם ההנחיה% F כדי לראות את סוגי מערכות הקבצים שלך.
- nid מזהה הקבוצה המספרי של הקובץ הוא n .
-קבוצות gname הקובץ שייך לקבוצה gname (מזהה קבוצה מספרי).
-ilname דפוס כמו שם, אבל המשחק הוא רגיש במקרה.
-iname דפוס כמו - שם , אבל המשחק הוא רגיש במקרה. לדוגמה, הדפוסים FO * ו F ?? התאם את שמות הקבצים Foo , FOO , foo , פו , וכו.
- num הקובץ כולל מספר אינודה n .
נתיב דפוס כמו נתיב , אבל המשחק הוא רגיש במקרה.
-iregex דפוס כמו גרג'קס, אבל המשחק הוא חסר חשיבות.
- קישורים n קובץ יש n קישורים.
-lname דפוס הקובץ הוא קישור סימבולי שתוכנו תואם לתבנית הקליפה. המטא-תווים אינם מטפלים / או . במיוחד.
-Mmin n נתוני הקובץ שונו לאחרונה n לפני דקות.
-mtime n נתוני הקובץ שונו לאחרונה n * לפני 24 שעות.
-שם דפוס בסיס שם הקובץ (הנתיב עם הספריות המובילות הוסרו) תואם לדגם פגז. המטא-תווים (*, ?, ו ) אינם תואמים א . בתחילת שם הבסיס. כדי להתעלם מספריה ומהקבצים שמתחתיו, השתמש -פרון ; ראה דוגמה בתיאור של נתיב .
-Newer file הקובץ שונה לאחרונה קובץ . הביטוי - יותר מושפע מ -לעקוב אחר רק אם -לעקוב אחר מגיע לפני - יותר על שורת הפקודה.
-יותר אין משתמש המתאים למזהה המשתמש המספרי של הקובץ.
- קבוצה אין קבוצה המתאימה למזהה הקבוצה המספרי של הקובץ.
נתיב דפוס שם הקובץ תואם לדפוס פגז דפוס . המטא-תווים אינם מטפלים / או . במיוחד; כך, למשל,למצוא . -path './sr*sc תדפיס רשומה עבור ספריה הנקראת ./src / misc (אם קיימת). כדי להתעלם מעץ ספרייה שלם, השתמש -פרון במקום לבדוק כל קובץ בעץ. לדוגמה, כדי לדלג על ספריית ה- src / emacs וכל הקבצים והספריות שמתחתיו, ולהדפיס את שמות הקבצים האחרים שנמצאו, בצע פעולה כזו:למצוא . -path './src / emacs' -Proune -o-print
-מצב מצב פיסות ההרשאה של הקובץ הן בדיוק מצב (אוקטלי או סימבולי). מצבים סמליים משתמשים במצב 0 כנקודת מוצא.
-מצב -Mode כל סיביות ההרשאה מצב נקבעים עבור הקובץ.
מצב + מצב + כל אחד מחתיכות ההרשאה מצב נקבעים עבור הקובץ.
-regex דפוס שם הקובץ תואם לביטוי רגיל דפוס . זה משחק על כל הדרך, לא חיפוש. לדוגמה, כדי להתאים לקובץ בשם ./fubar3, ניתן להשתמש בביטוי הרגיל בר. או . * * * 3, אבל לא * * r3.
-size n bckw משתמש בקובץ n יחידות חלל. היחידות הן 512 בתים בתים כברירת מחדל או אם b עוקב n , בתים אם c להלן n , קילו-בתים אם ק n , או 2 מילים בתים אם w כדלקמן n . הגודל אינו נחשב בלוקים עקיפים, אך הוא מונה בלוקים בקבצים דלילים שאינם מוקצים בפועל.
נכון תמיד נכון.
סוג c הקובץ הוא מסוג c :
בלוק (שנאגרו) מיוחד
c אופי (unbuffered) מיוחד
ד מדריך
עמ ' צינור בשם (FIFO)
ו קובץ רגיל
l קישור סמלי
s שקע
ד door (Solaris)
-נייד n מזהה המשתמש המספרי של הקובץ הוא n .
- בשימוש n הקובץ היה האחרון n ימים לאחר מעמדה שונה לאחרונה.
-משתמש uname הקובץ נמצא בבעלות המשתמש uname (זיהוי משתמש מספרי).
-גודל c כמו סוג אלא אם הקובץ הוא סמל. עבור קישורים סמליים: אם -לעקוב אחר לא ניתנה, נכון אם הקובץ הוא קישור לקובץ מסוג c ; אם -לעקוב אחר ניתנה, נכון אם c הוא l. במילים אחרות, עבור קישורים סמליים, -טיפוס בודק את סוג הקובץ סוג אינו בודק.

פעולות

-exec פקודה ;

לבצע פקודה ; אם המצב 0 מוחזר. כל הארגומנטים הבאיםלמצוא נתפסים כטיעונים לפקודה עד שויכוח המורכב מ ';' הוא נתקל. המחרוזת `{} 'מוחלפת בשם הקובץ הנוכחי המעובד בכל מקום בו היא מתרחשת בארגומנטים לפקודה, לא רק בארגומנטים שבהם היא לבדה, כמו בכמה גרסאות שללמצוא. שני המבנים הללו עשויים להימלט (עם '') או לצטט אותם כדי להגן עליהם מפני הרחבת על ידי פגז. הפקודה מבוצעת בספריית ההתחלה.

-פלאס קובץ

אמת; כמו, אבל לכתוב קובץ כמו הדפסה.

-דפוס קובץ

אמת; להדפיס את שם הקובץ המלא לקובץ קובץ . אם קובץ אינו קיים כאשרלמצוא הוא פועל, הוא נוצר; אם היא קיימת, היא קטועה. שמות הקבצים "/ dev / stdout" ו- "/ dev / stderr" מטופלים במיוחד; הם מתייחסים הפלט הסטנדרטי פלט שגיאה תקן, בהתאמה.

-פרינט0 קובץ

אמת; כמו print0 אבל לכתוב קובץ כמו הדפסה.

-פרינטף קובץ פורמט

אמת; כמו printf אבל לכתוב קובץ כמו הדפסה.

-בסדר פקודה ;

כמו -exec אבל לשאול את המשתמש הראשון (על הקלט הסטנדרטי); אם התגובה אינה מתחילה ב- y או ב- Y, אל תפעיל את הפקודה ותחזור כוזב.

-הדפס

אמת; הדפס את שם הקובץ המלא בפלט הסטנדרטי, ואחריו קו חדש.

-print0

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

-פרינט פורמט

אמת; הדפס פורמט על הפלט הסטנדרטי, פירוש הוראות "בריחה ". רוחב שדה ו precisions ניתן להגדיר כמו עם `printf 'C פונקציה. שלא כמו-הדפסה, -הפרינטף אינו מוסיף קו חדש בסוף המחרוזת. הבריחות וההוראות הן:

a

פעמון אזעקה.

b

Backspace.

c

הפסק להדפיס מיד מתבנית זו ושטוף את הפלט.

f

הזנת טופס.

n

שורה חדשה.

r

החזרת המרכבה.

t

הכרטיסייה אופקית.

v

הכרטיסייה אנכית.

\

ריקבון מילולי ('').

NNN

הדמות אשר קוד ASCII שלה הוא NNN (אוקטלי).

תו '' ואחריו כל תו אחר מטופל כתו רגיל, כך ששניהם מודפסים.

%%

סימן אחוז מילולי.

% a

זמן הגישה האחרון של הקובץ בתבנית המוחזרת על ידי פונקציית C 'ctime'.

% א k

זמן הגישה האחרון של הקובץ בתבנית שצוין על ידי k , שהוא גם '@' או הוראה לתפקוד C 'strftime'. הערכים האפשריים עבור k המפורטות להלן; חלקן לא יהיו זמינות בכל המערכות, בשל הבדלים ב 'strftime' בין מערכות.

@

שניות מאז 1 בינואר 1970, 00:00 GMT.

שדות זמן:

ח

שעה (00.23)

אני

שעה (01..12)

k

שעה (0..23)

l

שעה (1..12)

M

דקה (00..59)

עמ '

של AM או PM של המקום

ייצור

שעה, 12 שעות (hh: mm: ss AP M)

S

השני (00..61)

T

שעה, 24 שעות (hh: mm: ss)

איקס

ייצוג זמן של אזור (H: M: S)

Z

אזור זמן (למשל, EDT), או שום דבר אם לא ניתן לקבוע אזור זמן

שדות תאריך:

א

שם השבוע המקוצר של המקום (Sun..Sat)

א

שם השבוע המלא של המקום, אורך משתנה (יום ראשון … יום שבת)

שם החודש המקוצר של המקום (Jan ..Dec)

ב

שם החודש המלא של המקום, אורך משתנה (ינואר … דצמבר)

c

תאריך ושעה של המקום (Sat Nov 04 12:02:33 EST 1989)

ד

יום החודש (01..31)

ד

תאריך (mm / dd / yy)

ח

כמו ב

י

יום של השנה (001.366)

M

חודש (01..12)

U

שבוע מספר השנה עם יום ראשון ליום הראשון בשבוע (00..53)

w

יום בשבוע (0..6)

W

שבוע מספר השנה עם יום שני ליום הראשון בשבוע (00..53)

איקס

ייצוג תאריך מקומי (mm / dd / yy)

y

שתי הספרות האחרונות של השנה (00..99)

Y

שנה (1970 …)

% b

גודל הקובץ בבלוקים של 512 בתים (מעוגל).

% c

המעמד האחרון של הקובץ משנה את הזמן בתבנית המוחזרת על ידי פונקציית C 'ctime'.

% C k

המצב האחרון של הקובץ משנה את השעה בפורמט שצוין k , שהוא זהה עבור% א.

% d

עומק הקובץ בעץ המדריך; 0 פירושו שהקובץ הוא ארגומנט של שורת פקודה.

% f

שם הקובץ עם כל הספריות המובילות הוסרו (רק את הרכיב האחרון).

% F

סוג מערכת הקבצים שהקובץ נמצא בה; ערך זה יכול לשמש עבור - סוג.

% g

שם הקבוצה של הקובץ, או מזהה הקבוצה המספרי, אם לקבוצה אין שם.

% G

מזהה הקבוצה המספרי של הקובץ.

% h

ספריות מובילות של שם הקובץ (כל האלמנט מלבד האחרון).

% H

ארגומנט שורת פקודה תחת איזה קובץ נמצא.

%אני

מספר INode של הקובץ (בעשרונית).

% k

גודל הקובץ בקוביות 1K (מעוגל).

% l

אובייקט של קישור סימבולי (מחרוזת ריקה אם הקובץ אינו קישור סמלי).

%M

חתיכות הרשאת הקובץ (באוקטל).

% n

מספר הקישורים הקשים לקובץ.

% p

שם הקובץ.

% P

שם הקובץ עם שם ארגומנט שורת הפקודה שמתחתיו הוא הוסר.

% s

גודל הקובץ בבתים.

% t

זמן השינוי האחרון של הקובץ בתבנית שהוחזרה על ידי פונקציית C 'ctime'.

% T k

זמן השינוי האחרון של הקובץ בפורמט שצוין על ידי k , שהוא זהה עבור% א.

% u

שם המשתמש של הקובץ או מזהה המשתמש המספרי אם למשתמש אין שם.

% U

זיהוי המשתמש המספרי של הקובץ.

תו '%' ואחריו כל תו אחר נמחק (אך התו השני מודפס).

-פרון

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

-ls

אמת; ברשימה הנוכחית הקובץ בפורמט ls -dils על פלט סטנדרטי. סעיפי הבלוק הם של 1K בלוקים, אלא אם כן משתנה הסביבה POSIXLY_CORRECT מוגדר, ובמקרה זה משמשים בלוקים של 512 בתים.

אופרטורים

פירוט לפי סדר יורד:

( expr )

כוח עדיפות.

! expr

נכון אם expr הוא שקר.

- לא expr

כמו ! expr .

expr2 expr2

ו (משתמע); expr2 לא מוערכת אם expr1 הוא שקר.

expr1 - א expr2

כמו expr2 expr2 .

expr1 - ו expr2

כמו expr2 expr2 .

expr1 -ו expr2

או expr2 לא מוערכת אם expr1 נכון.

expr1 -או expr2

כמו expr1 -ו expr2 .

expr1 , expr2

רשימה; שניהם expr1 ו expr2 מוערכים תמיד. הערך של expr1 הוא נמחק; ערך הרשימה הוא הערך של expr2 .

דוגמאות

למצוא / home -user ג 'ו

מצא את כל הקבצים תחת הספרייה / הבית בבעלות joe המשתמש.

מצא / usr-name * סטאט

מצא את כל הקבצים תחת הספרייה / usr מסתיים ".

מצא / var / spool -mtime +60

מצא את כל הקבצים תחת ספרייה / var / סליל זה שונה יותר מ -60 ימים.

למצוא / tmp -name הליבה-סוג f-print xargs / bin / rm -f

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

מצא / tmp -name הליבה-סוג f-print0 | xargs -0 / bin / rm -f

חפש קבצים בשםהליבה בספריה או מתחתיה/ tmp ולמחוק אותם, עיבוד שמות קבצים בצורה כזו שמות קובץ או ספרייה המכילים ציטוטים בודדים או כפולה, רווחים או שורות חדשות מטופלים כראוי. ה- שם הבדיקה מגיעה לפניסוג כדי להימנע מהצורך להתקשרstat (2) על כל קובץ.

למצוא . -tpe f-fileec '{}' ;

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

() -perm -4000 -fprintf /root /suid.txt '% # m% u% p n' ), (-size + 100M -fprintf /root /big.txt '% -10s% p n' )

לחצות את מערכת הקבצים רק פעם אחת, הרישום setuid קבצים וספריות לתוך/root/suid.txt ו קבצים גדולים לתוך/root /big.txt.

מצא $ HOME -mtime 0

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

0, קובץ יהיה חייב להיות שינוי בעבר אשר לפני פחות מ 24 שעות.

למצוא . 664

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

למצוא . -perm -664

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

למצוא . -פרט / 222

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

למצוא . - 240 / למצוא . -Pmm / u + w, g + w למצוא . -פרמטר / u = w, g = w

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

למצוא . -perm -220 למצוא . -Pmm -g + w, u + w

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

למצוא . -perm-444 -perm / 222! -פרם / 111 למצוא . -perm -a + r -perm / a + w! -perm / a + x

שתי פקודות אלה הן חיפוש עבור קבצים קריאים עבור כולם (-pmm-444 או -perm-r + r), יש לפחות להגדיר את ערכת bit (-perm / 222 או -perm / a + w) אך אינם ניתנים להפעלה עבור כל אחד (! -perm / 111 ו-! -perm / a + x בהתאמה)

חשוב: להשתמש ב איש פקודה ( % איש ) כדי לראות כיצד נעשה שימוש בפקודה במחשב הספציפי שלך.