คำสั่ง Linux และ Unix หา ดำเนินการค้นหาไฟล์ในลำดับชั้นของไดเร็กทอรี
ไวยากรณ์สำหรับ หา คำสั่ง:
หา เส้นทาง … นิพจน์
ลักษณะ
หน้านี้ใช้สำหรับเอกสารฉบับ GNU หา . คำสั่ง หา ค้นหาโครงสร้างไดเรกทอรีที่ชื่อไฟล์แต่ละไฟล์โดยการประเมินนิพจน์ที่ระบุจากซ้ายไปขวาตามกฎของลำดับความสำคัญ (ดูส่วนผู้ดำเนินการด้านล่าง) จนกระทั่งทราบผลลัพธ์ กล่าวคือด้านซ้ายมือเป็นเท็จ และ การดำเนินงานจริงสำหรับ หรือ ณ จุดนั้น หา ย้ายไปยังชื่อไฟล์ถัดไป
อาร์กิวเมนต์แรกที่ขึ้นต้นด้วย:
- -
- ( หรือ ),
- !
เป็นจุดเริ่มต้นของการแสดงออก อาร์กิวเมนต์ใด ๆ ก่อนที่จะเป็นเส้นทางในการค้นหาและอาร์กิวเมนต์ใด ๆ หลังจากที่เป็นส่วนที่เหลือของนิพจน์ ถ้าไม่มีพา ธ ให้ใช้ไดเร็กทอรีปัจจุบัน หากไม่มีการแสดงออกนิพจน์ -พิมพ์ ถูกนำมาใช้.
หา คำสั่ง exit มีสถานะ 0 ถ้าไฟล์ทั้งหมดได้รับการประมวลผลเรียบร้อยแล้วมากกว่า 0 หากเกิดข้อผิดพลาดขึ้น
การแสดงออก
นิพจน์ประกอบขึ้นด้วยตัวเลือก (ซึ่งส่งผลกระทบต่อการดำเนินการโดยรวมไม่ใช่การประมวลผลไฟล์เฉพาะและคืนค่าจริงเสมอ) การทดสอบ (ซึ่งส่งคืนค่าจริงหรือเท็จ) และการดำเนินการ (ซึ่งมีผลข้างเคียงและส่งคืนค่าจริงหรือ ค่าเท็จ) ทั้งหมดที่คั่นด้วยตัวดำเนินการ การแสดงออก -และ จะสันนิษฐานว่าโอเปอเรเตอร์ถูกข้ามไป หากนิพจน์ไม่มีการกระทำอื่นนอกจาก -พรุน แล้ว -พิมพ์ จะถูกดำเนินการกับไฟล์ทั้งหมดที่นิพจน์เป็นจริง
ตัวเลือก
ตัวเลือกทั้งหมดจะเป็นจริงเสมอ พวกเขามักจะมีผลมากกว่าการประมวลผลเฉพาะเมื่อสถานที่ในการแสดงออกถึง ดังนั้นเพื่อความชัดเจนควรวางไว้ที่จุดเริ่มต้นของนิพจน์
-daystart | วัดเวลา (สำหรับ -amin, -atime, -cmin, -time, -mmin, และ -mtime ) ตั้งแต่ต้นวันนี้มากกว่าจาก 24 ชั่วโมงที่ผ่านมา |
-ความลึก | ประมวลผลเนื้อหาของแต่ละไดเร็กทอรีก่อนไดเรกทอรี |
ควรตาม | การเชื่อมโยงสัญลักษณ์ Dereference หมายถึง -noleaf . |
-ช่วยด้วย หรือ --ช่วยด้วย | พิมพ์สรุปการใช้บรรทัดคำสั่งของ หา และออก |
-maxdepth จำนวน | (จำนวนเต็มไม่ติดลบ) ของไดเรกทอรีใต้อาร์กิวเมนต์บรรทัดคำสั่ง การแสดงออก - maxdepth 0 หมายถึงเฉพาะใช้การทดสอบและการดำเนินการกับอาร์กิวเมนต์บรรทัดคำสั่ง |
- เดือน จำนวน | อย่าใช้การทดสอบหรือการกระทำใด ๆ ในระดับที่น้อยกว่าจำนวน (จำนวนเต็มที่ไม่ติดลบ) การแสดงออก - แบบที่ 1 หมายถึงประมวลผลไฟล์ทั้งหมดยกเว้นอาร์กิวเมนต์บรรทัดคำสั่ง |
-mount | ไม่ลงมาไดเรกทอรีในระบบแฟ้มอื่น ๆ ชื่อสำรองสำหรับ -xdev , สำหรับความเข้ากันได้กับรุ่นอื่น ๆ บางส่วนของ หา . |
-noleaf | ไม่เพิ่มประสิทธิภาพโดยสมมติว่าไดเรกทอรีที่มี 2 ไดเรกทอรีย่อยน้อยกว่านับลิงก์ยาก * |
-version หรือ --version | พิมพ์ หา หมายเลขเวอร์ชันและออก |
-xdev | ไม่ลงมาไดเรกทอรีในระบบแฟ้มอื่น ๆ |
* จำเป็นต้องใช้ตัวเลือกนี้เมื่อค้นหาระบบแฟ้มที่ไม่ปฏิบัติตามกฎการเชื่อมโยงไดเรกทอรีไดเร็กทอรี Unix เช่นระบบไฟล์ของ CD-ROM หรือ MS-DOS หรือจุดเชื่อมต่อข้อมูล AFS แต่ละไดเร็กทอรีในระบบไฟล์ Unix ปกติจะมีลิงก์อย่างน้อย 2 รายการ ได้แก่ ชื่อและไฟล์ (ระยะเวลา) นอกจากนี้ไดเร็กทอรีย่อย (ถ้ามี) มี รายการที่เชื่อมโยงกับไดเรกทอรีนั้น
เมื่อ หา กำลังตรวจสอบไดเรกทอรีหลังจากที่ได้ statted ไดเรกทอรีย่อยสองตัวที่น้อยกว่าจำนวนการเชื่อมโยงของไดเรกทอรีจะรู้ว่าส่วนที่เหลือของรายการในไดเร็กทอรีไม่ใช่ไดเร็กทอรี ใบไม้ ไฟล์ในโครงสร้างไดเรกทอรี) หากจำเป็นต้องตรวจสอบเฉพาะชื่อไฟล์เท่านั้นจึงไม่จำเป็นต้องระบุค่าเหล่านี้ นี้จะช่วยให้เพิ่มขึ้นอย่างมีนัยสำคัญในการค้นหาความเร็ว
การทดสอบ
อาร์กิวเมนต์ตัวเลขสามารถระบุได้ดังนี้
n + | สำหรับมากกว่า n |
-n | สำหรับน้อยกว่า n |
n | สำหรับตรง n |
-amin n | เข้าถึงไฟล์ครั้งล่าสุด n นาทีที่ผ่านมา |
- ใหม่ ไฟล์ | มีการเข้าถึงไฟล์ล่าสุดเมื่อเร็ว ๆ นี้กว่า ไฟล์ ถูกแก้ไข - ใหม่จะได้รับผลกระทบโดย - ตาม - เฉพาะเมื่อ - ตามมาก่อน - อีกครั้งในบรรทัดคำสั่ง |
เวลา n | เข้าถึงไฟล์ครั้งล่าสุด n * 24 ชั่วโมงที่ผ่านมา |
- n n | สถานะไฟล์ได้รับการเปลี่ยนแปลงครั้งล่าสุด n นาทีที่ผ่านมา |
-cnewer ไฟล์ | สถานะไฟล์ได้รับการเปลี่ยนแปลงครั้งล่าสุดเมื่อเร็ว ๆ นี้กว่าที่มีการแก้ไขไฟล์- cnewer ได้รับผลกระทบจาก ควรตาม เพียงแค่ ควรตาม มาก่อน -cnewer ในบรรทัดคำสั่ง |
ช่วงเวลา n | สถานะไฟล์ได้รับการเปลี่ยนแปลงครั้งล่าสุด n * 24 ชั่วโมงที่ผ่านมา |
-empty | ไฟล์ว่างเปล่าและเป็นไฟล์ปกติหรือไดเรกทอรี |
-false | เสมอเท็จ |
-fstype ชนิด | ไฟล์อยู่ในระบบแฟ้มชนิดที่ระบุ ประเภทของระบบไฟล์ที่ถูกต้องแตกต่างกันไปในหลายรุ่นของ Unix; รายการระบบแฟ้มที่ไม่สมบูรณ์ที่ได้รับการยอมรับใน Unix หรือเวอร์ชันอื่นคือ: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K คุณสามารถใช้ -printf กับคำสั่ง% F เพื่อดูชนิดของระบบแฟ้มของคุณ |
-gid n | รหัสกลุ่มตัวเลขของไฟล์คือ n . |
กลุ่ม gname | ไฟล์เป็นของกลุ่ม gname (อนุญาตให้ใช้กลุ่มตัวเลขได้) |
-ilname pattern | ชอบ - ชื่อ แต่การจับคู่เป็นกรณีที่ไม่รู้สึกตัว |
ใส่ชื่อ pattern | ชอบ -ชื่อ , แต่การจับคู่เป็นกรณี insensitive ตัวอย่างเช่นรูปแบบ สำหรับ * และ F ?? ตรงกับชื่อไฟล์ ฟู , FOO , foo , foo ฯลฯ |
-inum n | ไฟล์มีหมายเลขไอโหนด n . |
-ipath pattern | ชอบ -เส้นทาง , แต่การจับคู่เป็นกรณี insensitive |
-exgex รูปแบบ | เช่นเดียวกับ -regex แต่การจับคู่แบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ |
เชื่อมโยง n | มีไฟล์แล้ว n การเชื่อมโยง |
รูปแบบ | ไฟล์เป็นลิงก์สัญลักษณ์ซึ่งมีเนื้อหาตรงกับรูปแบบเชลล์ เมตาแท็กไม่ปฏิบัติต่อ / หรือ . พิเศษ |
-mmin n | ข้อมูลของไฟล์ได้รับการแก้ไขล่าสุด n นาทีที่ผ่านมา |
- mtime n | ข้อมูลของไฟล์ได้รับการแก้ไขล่าสุด n * 24 ชั่วโมงที่ผ่านมา |
- ชื่อ รูปแบบ | ฐานของชื่อไฟล์ (เส้นทางที่มีไดเรกทอรีชั้นนำที่ลบออก) ตรงกับรูปแบบของเชลล์ metacharacters (*, ?, และ ) ไม่ตรงก . ที่จุดเริ่มต้นของชื่อฐาน หากต้องการละเว้นไดเร็กทอรีและไฟล์ที่อยู่ภายใต้ไฟล์ให้ใช้ -พรุน ; ดูตัวอย่างในคำอธิบายของ -เส้นทาง . |
ใหม่ ไฟล์ | ไฟล์ถูกแก้ไขเมื่อเร็ว ๆ นี้กว่า ไฟล์ . การแสดงออก -newer ได้รับผลกระทบจาก ควรตาม เพียงแค่ ควรตาม มาก่อน -newer ในบรรทัดคำสั่ง |
-nouser | ไม่มีผู้ใช้ใดที่ตรงกับ ID ผู้ใช้ที่เป็นตัวเลขของไฟล์ |
-nogroup | ไม่มีกลุ่มใดที่สอดคล้องกับ ID กลุ่มตัวเลขของไฟล์ |
-path pattern | ชื่อไฟล์ตรงกับรูปแบบของเชลล์ แบบแผน . เมตาแท็กไม่ปฏิบัติต่อ / หรือ . พิเศษ; ดังนั้นตัวอย่างเช่นหา -path '/ srr * sc จะพิมพ์รายการสำหรับไดเรกทอรีที่ชื่อ ./src/misc (ถ้ามีอยู่) หากไม่สนใจโครงสร้างไดเรกทอรีทั้งหมดให้ใช้ -พรุน แทนที่จะตรวจสอบทุกไฟล์ในต้นไม้ ตัวอย่างเช่นในการข้ามไดเร็กทอรี src / emacs และไฟล์และไดเรกทอรีทั้งหมดที่อยู่ใต้ชื่อไฟล์และพิมพ์ชื่อของไฟล์อื่น ๆ ที่พบให้ทำดังนี้:หา -path './src/emacs' -prune -o -print |
-perm โหมด | บิตการให้สิทธิ์ของไฟล์เป็นแบบเดียวกัน โหมด (รูปแปดเหลี่ยมหรือสัญลักษณ์) โหมดสัญลักษณ์ใช้โหมด 0 เป็นจุดเริ่มต้น |
-perm -mode | บิตอนุญาตทั้งหมด โหมด ถูกตั้งค่าไว้สำหรับไฟล์ |
-perm + โหมด | บิตอนุญาตใด ๆ โหมด ถูกตั้งค่าไว้สำหรับไฟล์ |
-regex รูปแบบ | ชื่อไฟล์ตรงกับนิพจน์ทั่วไป แบบแผน . นี่เป็นการจับคู่บนเส้นทางทั้งหมดไม่ใช่การค้นหา ตัวอย่างเช่นหากต้องการจับคู่ไฟล์ชื่อ ./fubar3 คุณสามารถใช้นิพจน์ทั่วไป .*บาร์. หรือ . * b. * 3, แต่ไม่ b. * R3. |
ขนาด n bckw | การใช้ไฟล์ n หน่วยของพื้นที่ หน่วยเป็นบล็อก 512 ไบต์โดยค่าเริ่มต้นหรือถ้า b ดังต่อไปนี้ n , ไบต์ถ้า c ดังต่อไปนี้ n , กิโลไบต์ถ้า k ตามมา n , หรือ 2 ไบต์ถ้า w ตาม n . ขนาดจะไม่นับจำนวนบล็อคทางอ้อม แต่จะนับจำนวนบล็อกในไฟล์ที่เบาบางที่ไม่ได้รับการจัดสรรจริง |
-true | เสมอจริง |
ประเภท c | ไฟล์เป็นประเภท ค : |
ข | บล็อก (บัฟเฟอร์) พิเศษ |
ค | อักขระ (unbuffered) พิเศษ |
d | ไดเรกทอรี |
พี | ท่อที่มีชื่อ (FIFO) |
ฉ | ไฟล์ปกติ |
ล. | ลิงค์สัญลักษณ์ |
s | เบ้า |
D | ประตู (Solaris) |
- ให้ n | ID ผู้ใช้ที่เป็นตัวเลขของไฟล์คือ n . |
ใช้ n | เข้าถึงไฟล์ครั้งล่าสุด n วันหลังจากเปลี่ยนสถานะล่าสุด |
- ผู้ใช้ uname | ไฟล์เป็นของผู้ใช้ uname (อนุญาต ID ผู้ใช้ตัวเลข) |
-xtype c | เหมือนกับ ประเภท เว้นแต่ว่าไฟล์นั้นเป็นลิงค์สัญลักษณ์ สำหรับการเชื่อมโยงแบบสัญลักษณ์: if ควรตาม ไม่ได้รับจริงถ้าไฟล์เป็นลิงค์ไปยังไฟล์ประเภท ค ; ถ้า ควรตาม ได้รับจริงถ้า ค คือ l ในคำอื่น ๆ สำหรับการเชื่อมโยงสัญลักษณ์, -xtype ตรวจสอบชนิดของไฟล์ที่ ประเภท ไม่ได้ตรวจสอบ |
การปฏิบัติ
-exec คำสั่ง ;
ปฏิบัติ คำสั่ง ; true ถ้ามีการส่งกลับสถานะ 0 อาร์กิวเมนต์ทั้งหมดต่อไปนี้หา ถูกนำไปเป็นอาร์กิวเมนต์ของคำสั่งจนกว่าอาร์กิวเมนต์ประกอบด้วย `; ' จะพบ สตริง `{} 'จะถูกแทนที่ด้วยชื่อไฟล์ปัจจุบันที่กำลังประมวลผลทุกที่ที่เกิดขึ้นในอาร์กิวเมนต์ของคำสั่งไม่ใช่เฉพาะในอาร์กิวเมนต์ที่อยู่คนเดียวเช่นเดียวกับในบางเวอร์ชันหา. โครงสร้างทั้งสองแบบนี้อาจจำเป็นต้องหลบหนี (ด้วย ` ') หรืออ้างเพื่อปกป้องพวกเขาจากการขยายตัวโดยเปลือก คำสั่งจะถูกเรียกใช้ในไดเร็กทอรีเริ่มต้น
-fls ไฟล์
ทรู; ชอบ -ls แต่เขียนไป ไฟล์ เช่น - พิมพ์
-fprint ไฟล์
ทรู; พิมพ์ชื่อไฟล์แบบเต็มลงในไฟล์ ไฟล์ . ถ้า ไฟล์ ไม่มีเมื่อหา มีการเรียกใช้มันถูกสร้างขึ้น ถ้าไม่มีอยู่จะถูกตัดทอน ชื่อไฟล์ `` / dev / stdout '' และ `` / dev / stderr '' ถูกจัดการโดยเฉพาะ หมายถึงเอาท์พุทมาตรฐานและเอาท์พุทข้อผิดพลาดมาตรฐานตามลำดับ
-fprint0 ไฟล์
ทรู; เช่น -print0 แต่เขียนไปที่ ไฟล์ เช่น - พิมพ์
-fprintf ไฟล์ รูป
ทรู; ชอบพิมพ์ แต่เขียนไป ไฟล์ เช่น - พิมพ์
-ตกลง คำสั่ง ;
เช่น - ไม่ต้องถามผู้ใช้ก่อน (ในอินพุตมาตรฐาน); ถ้าการตอบสนองไม่ได้เริ่มต้นด้วย `y 'หรือ` Y' อย่าใช้คำสั่งและส่งกลับค่า false
-พิมพ์
ทรู; พิมพ์ชื่อไฟล์แบบเต็มบนเอาต์พุตมาตรฐานตามด้วยบรรทัดใหม่
-print0
ทรู; พิมพ์ชื่อไฟล์แบบเต็มบนเอาต์พุตมาตรฐานตามด้วยอักขระ nullซึ่งช่วยให้ชื่อไฟล์ที่มีบรรทัดใหม่ที่จะตีความได้อย่างถูกต้องโดยโปรแกรมที่ประมวลผลหา เอาท์พุต
-printf รูป
ทรู; พิมพ์ รูป บนเอาต์พุตมาตรฐานแปลคำสั่ง ` 'escapes และ`%' ความกว้างฟิลด์และความละเอียดสามารถระบุได้เช่นเดียวกับฟังก์ชัน `printf 'C ไม่เหมือนกับ -print, -printf ไม่เพิ่มบรรทัดใหม่ที่ท้ายสตริง หนีและคำสั่งคือ:
a
กระดิ่งปลุก
ข
Backspace
ค
หยุดการพิมพ์จากรูปแบบนี้ทันทีและล้างข้อมูลออก
ฉ
ฟีดรูปแบบ.
n
นิวไลน์
r
กลับรถ
t
แท็บแนวนอน
วี
แท็บแนวตั้ง
\
เครื่องหมายทับขวาแบบอักษร ("")
มมมม
อักขระที่มีรหัส ASCII คือ NNN (เลขฐานแปด)
อักขระ ` 'ตามด้วยอักขระอื่น ๆ จะถือว่าเป็นอักขระธรรมดาดังนั้นทั้งสองแบบจึงถูกพิมพ์ออกมา
%%
เครื่องหมายเปอร์เซ็นต์ที่แท้จริง
% ใน
เวลาเข้าถึงครั้งสุดท้ายของไฟล์ในรูปแบบที่ส่งคืนโดยฟังก์ชัน C `ctime '
% ใน k
เวลาเข้าถึงครั้งสุดท้ายของแฟ้มในรูปแบบที่ระบุโดย k ซึ่งเป็น `@ 'หรือคำสั่งสำหรับฟังก์ชัน C strftime ค่าที่เป็นไปได้สำหรับ k อยู่ด้านล่าง; บางคนอาจไม่สามารถใช้ได้กับทุกระบบเนื่องจากความแตกต่างระหว่าง `strftime 'ระหว่างระบบ
@
วินาทีนับตั้งแต่วันที่ 1 มกราคม 1970 เวลา 00:00 น. GMT
เขตข้อมูลเวลา:
H
ชั่วโมง (00..23)
ผม
ชั่วโมง (01..12)
k
ชั่วโมง (0..23)
ล.
ชั่วโมง (1..12)
M
นาที (00..59)
พี
AM หรือ PM ของสถานที่
R
เวลา, 12 ชั่วโมง (hh: mm: ss AP M)
S
วินาที (00..61)
T
เวลา, ชั่วโมง (ชั่วโมง: มม.: นาที)
X
การแสดงเวลาของสถานที่ (H: M: S)
Z
เขตเวลา (เช่น EDT) หรือไม่ถ้าไม่มีกำหนดโซนเวลา
ฟิลด์วันที่:
ชื่อย่อของชื่อย่อในท้องที่ (Sun..Sat)
ชื่อวันทำงานเต็มรูปแบบของท้องถิ่น, ความยาวตัวแปร (วันอาทิตย์ .. วันเสาร์)
ข
ชื่อเดือนย่อของสถานที่เกิดเหตุ (Jan.Dec)
B
ชื่อเดือนเต็มของท้องถิ่นความยาวตัวแปร (มกราคม .. ธันวาคม)
ค
วันที่และเวลาของโลแคล (ส.ค. 04 12:02:33 EST 1989)
d
วันในเดือน (01..31)
D
วันที่ (เดือน / วัน / ปี)
ชั่วโมง
เช่นเดียวกับข
J
วันในปี (001..366)
ม.
เดือน (01..12)
ยู
สัปดาห์ของสัปดาห์กับวันอาทิตย์เป็นวันแรกของสัปดาห์ (00..53)
W
วันในสัปดาห์ (0..6)
W
สัปดาห์ของสัปดาห์กับวันจันทร์เป็นวันแรกของสัปดาห์ (00..53)
x
การแสดงวันที่ของมัสยิด (ม.ค. / ดด / ปปปป)
Y
ตัวเลขสองหลักสุดท้ายของปี (00..99)
Y
ปี (1970 … )
b%
ขนาดไฟล์ในบล็อค 512 ไบต์ (ปัดขึ้น)
c%
เวลาการเปลี่ยนแปลงสถานะล่าสุดของไฟล์ในรูปแบบที่ส่งคืนโดยฟังก์ชัน C 'ctime'
C% k
เวลาการเปลี่ยนแปลงสถานะล่าสุดของไฟล์ในรูปแบบที่ระบุโดย k ซึ่งเป็นเช่นเดียวกับ% A
% d
ความลึกของไฟล์ในโครงสร้างไดเรกทอรี 0 หมายถึงไฟล์เป็นอาร์กิวเมนต์บรรทัดคำสั่ง
f%
ชื่อของไฟล์ถูกลบด้วยไดเรกทอรีชั้นนำ (เฉพาะองค์ประกอบสุดท้าย)
F%
ประเภทของระบบแฟ้มที่เปิดไฟล์ ค่านี้สามารถใช้สำหรับ -fstype
% g
ชื่อกลุ่มไฟล์หรือ ID กลุ่มตัวเลขถ้ากลุ่มไม่มีชื่อ
G%
ID กลุ่มตัวเลขของไฟล์
% h
ไดเรกทอรีชั้นนำของชื่อไฟล์ (ทั้งหมดยกเว้นองค์ประกอบสุดท้าย)
H%
อาร์กิวเมนต์บรรทัดคำสั่งตามไฟล์ที่พบ
%ผม
หมายเลข inode ของไฟล์ (เป็นทศนิยม)
% k
ขนาดไฟล์เป็น 1K บล็อก (ปัดเศษขึ้น)
l%
วัตถุของลิงค์สัญลักษณ์ (สตริงว่างถ้าไฟล์ไม่ใช่ลิงค์สัญลักษณ์)
% m
บิตอนุญาตของไฟล์ (ในรูป octal)
n%
จำนวนของฮาร์ดลิ้งค์ที่จะยื่น
p%
ชื่อไฟล์
% P
ชื่อไฟล์มีชื่ออาร์กิวเมนต์บรรทัดคำสั่งตามที่พบว่าถูกนำออก
% s
ขนาดไฟล์เป็นไบต์
t%
เวลาในการแก้ไขครั้งสุดท้ายของไฟล์ในรูปแบบที่ส่งกลับโดยฟังก์ชัน C 'ctime'
T% k
เวลาในการแก้ไขครั้งสุดท้ายของไฟล์ในรูปแบบที่ระบุโดย k ซึ่งเป็นเช่นเดียวกับ% A
%ยู
ชื่อผู้ใช้ของไฟล์หรือ ID ผู้ใช้ที่เป็นตัวเลขถ้าผู้ใช้ไม่มีชื่อ
%ยู
ID ผู้ใช้ตัวเลขของไฟล์
อักขระ `% 'ตามด้วยอักขระอื่น ๆ จะถูกละทิ้ง (แต่จะพิมพ์อักขระอื่น)
-พรุน
ถ้าไม่ได้รับความลึกซึ้งเป็นความจริง ไม่ลงมาไดเรกทอรีปัจจุบันถ้าเป็นเท็จ - เท็จ ไม่มีผลอะไร. -ls ทรู; แสดงรายการไฟล์ปัจจุบันในรูปแบบ `ls -dils 'ในเอาท์พุทมาตรฐาน จำนวนบล็อกนับเป็นบล็อก 1K เว้นแต่ว่าได้ตั้งค่าตัวแปร POSIXLY_CORRECT ของสภาพแวดล้อมซึ่งในกรณีนี้จะมีการใช้บล็อก 512 ไบต์ เรียงตามลำดับความสำคัญที่ลดลง: ( expr ) บังคับความสำคัญ ! expr จริงถ้า expr เป็นเท็จ -ไม่ expr เหมือนกับ ! expr . expr1 expr2 และ (โดยนัย); expr2 ไม่ได้รับการประเมินหาก expr1 เป็นเท็จ expr1 -a expr2 เหมือนกับ expr1 expr2 . expr1 -และ expr2 เหมือนกับ expr1 expr2 . expr1 -o expr2 หรือ; expr2 ไม่ได้รับการประเมินหาก expr1 เป็นความจริง. expr1 -หรือ expr2 เหมือนกับ expr1 -o expr2 . expr1 , expr2 รายการ; ทั้งสอง expr1 และ expr2 ได้รับการประเมินเสมอ คุณค่าของ expr1 ถูกทิ้ง; ค่าของรายการคือค่าของ expr2 . หา / home -user joe
ค้นหาทุกไฟล์ภายใต้ไดเร็กทอรี / home ที่เป็นของผู้ใช้ joe หา / usr -name * stat
ค้นหาไฟล์ทุกไฟล์ในไดเรกทอรี / usr ที่ลงท้ายด้วย ".stat" หา / var / spool -mtime +60
ค้นหาทุกไฟล์ภายใต้ไดเร็กทอรี / var / spool ที่แก้ไขมากกว่า 60 วันที่ผ่านมา หา / tmp -name หลักประเภท f -print | xargs / bin / rm -f
ค้นหาไฟล์ที่มีชื่อแกน ในหรือใต้ไดเรกทอรีtmp / และลบออกโปรดทราบว่าการดำเนินการนี้จะทำงานไม่ถูกต้องหากมีชื่อไฟล์ที่มีบรรทัดใหม่บรรทัดคำพูดเดี่ยวหรือสองคำหรือเว้นวรรค หา / tmp -name core-type f -print0 | xargs -0 / bin / rm -f
ค้นหาไฟล์ที่มีชื่อแกน ในหรือใต้ไดเรกทอรีtmp / และลบไฟล์เหล่านั้นประมวลผลชื่อไฟล์ในลักษณะที่ชื่อไฟล์หรือไดเรกทอรีที่มีเครื่องหมายอัญประกาศเดี่ยวหรือสองช่องว่างหรือบรรทัดใหม่จะได้รับการจัดการอย่างถูกต้อง-ชื่อ ทดสอบมาก่อนประเภท ทดสอบเพื่อหลีกเลี่ยงการโทรสถิติ (2) ในทุกไฟล์ หา - type f -exec file '{}' ;
รันไฟล์ `ในทุกไฟล์ในหรือใต้ไดเร็กทอรีปัจจุบัน สังเกตเห็นว่าวงเล็บปีกกามีเครื่องหมายอัญประกาศเดี่ยวเพื่อป้องกันไม่ให้คำแปลเป็นเครื่องหมายวรรคตอนของเชลล์ เครื่องหมายอัฒภาคจะได้รับการป้องกันในลักษณะเดียวกันโดยใช้เครื่องหมายแบ็กสแลชแม้ว่า ';' อาจใช้ในคดีนี้ด้วยเช่นกัน find / (-perm -4000 -fprintf /root/suid.txt '% # m% u% p n' ), (ขนาด n "+ 100"
สำรวจระบบไฟล์เพียงครั้งเดียวโดยแสดงรายการไฟล์และไดเรกทอรี setuid ลงใน/root/suid.txt และไฟล์ขนาดใหญ่เข้า/root/big.txt. หา $ HOME - เวลา 0
ค้นหาไฟล์ในไดเรกทอรีบ้านของคุณซึ่งได้รับการแก้ไขในช่วง 24 ชั่วโมงที่ผ่านมา คำสั่งนี้ใช้งานได้เนื่องจากเวลาตั้งแต่ไฟล์แต่ละไฟล์ถูกแก้ไขล่าสุดถูกแบ่งออกเป็น 24 ชั่วโมงและส่วนที่เหลือจะถูกยกเลิก นั่นหมายความว่าเพื่อให้ตรงกับ-mtime 0ไฟล์จะต้องมีการแก้ไขในอดีตซึ่งน้อยกว่า 24 ชั่วโมงที่ผ่านมา หา -perm 664
ค้นหาไฟล์ที่มีสิทธิ์อ่านและเขียนสำหรับเจ้าของและกลุ่ม แต่ผู้ใช้รายอื่นสามารถอ่านได้ แต่ไม่สามารถเขียนได้ ไฟล์ที่ตรงตามเกณฑ์เหล่านี้ แต่มีสิทธิ์อื่น ๆ ที่ตั้งค่าไว้ (เช่นถ้ามีใครสามารถเรียกใช้ไฟล์) จะไม่สามารถจับคู่ได้ หา -perm -664
ค้นหาไฟล์ที่มีสิทธิ์อ่านและเขียนสำหรับเจ้าของและกลุ่มและผู้ใช้คนอื่น ๆ สามารถอ่านได้โดยไม่คำนึงถึงการมีบิตพิเศษใด ๆ ที่ได้รับอนุญาต (ตัวอย่างเช่นบิตที่ปฏิบัติการได้) ซึ่งจะตรงกับไฟล์ที่มีโหมด 0777 ตัวอย่างเช่น หา -perm / 222
ค้นหาไฟล์ที่สามารถเขียนได้โดยใครบางคน (เจ้าของหรือกลุ่มของพวกเขาหรือคนอื่น) หา -perm / 220 หา -perm / u + w, g + w หา -perm / u = w, g = w
ทั้งสามคำสั่งเหล่านี้ทำแบบเดียวกัน แต่คำสั่งแรกใช้การแทนค่าทศนิยมของโหมดไฟล์และอีกสองใช้รูปแบบสัญลักษณ์ คำสั่งเหล่านี้ค้นหาไฟล์ที่สามารถเขียนได้โดยเจ้าของหรือกลุ่มของตน ไฟล์ไม่จำเป็นต้องสามารถเขียนได้โดยทั้งเจ้าของและกลุ่มที่จะจับคู่ ทั้งจะทำ หา -perm -220 หา -perm -g + w, u + w
ทั้งสองคำสั่งทำสิ่งเดียวกัน; ค้นหาไฟล์ที่สามารถเขียนได้โดยทั้งเจ้าของและกลุ่มของพวกเขา หา -perm -444 -perm / 222! -perm / 111 หา -perm -a + r -perm / a + w! -perm / a + x
คำสั่งทั้งสองนี้ค้นหาแฟ้มที่สามารถอ่านได้สำหรับทุกคน (-perm -444 หรือ -perm-a + r) มีอย่างน้อยในชุดบิตการเขียน (-perm / 222 หรือ -perm / a + w) แต่ไม่สามารถใช้งานได้ สำหรับใคร (! -perm / 111 และ! -perm / a + x ตามลำดับ) สำคัญ: ใช้ ชาย คำสั่ง ( % ชาย ) เพื่อดูว่ามีการใช้คำสั่งใดในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณผู้ประกอบการ
ตัวอย่าง