คำสั่ง Linux และ Unix จะค้นหาการค้นหาไฟล์ในลำดับชั้นของไดเร็กทอรี
ไวยากรณ์สำหรับ ค้นหา คำสั่ง:
หา [เส้นทาง ... ] [นิพจน์]
ลักษณะ
หน้าคู่มือนี้ใช้สำหรับค้นหารุ่น GNU คำสั่ง ค้นหา ค้นหาต้นไม้ไดเรกทอรีที่ชื่อไฟล์แต่ละไฟล์โดยการประเมินนิพจน์ที่ระบุจากซ้ายไปขวาตามกฎของลำดับความสำคัญ (ดูส่วนผู้ดำเนินการด้านล่าง) จนกระทั่งทราบผลลัพธ์ กล่าวคือด้านซ้ายมือเป็นเท็จสำหรับการดำเนินการจริง หรือ ที่จุดใดที่ พบว่า ย้ายไปยังชื่อไฟล์ถัดไป
อาร์กิวเมนต์แรกที่ขึ้นต้นด้วย:
- -
- ( หรือ )
- ,
- !
เป็นจุดเริ่มต้นของการแสดงออก อาร์กิวเมนต์ใด ๆ ก่อนที่จะเป็นเส้นทางในการค้นหาและอาร์กิวเมนต์ใด ๆ หลังจากที่เป็นส่วนที่เหลือของนิพจน์ ถ้าไม่มีพา ธ ให้ใช้ไดเร็กทอรีปัจจุบัน ถ้าไม่ได้กำหนดนิพจน์ใด ๆ จะใช้นิพจน์ พิมพ์ลายนิ้ว มือ
คำสั่ง find จะมีสถานะ 0 หากไฟล์ทั้งหมดได้รับการประมวลผลเรียบร้อยแล้วมากกว่า 0 หากเกิดข้อผิดพลาดขึ้น
การแสดงออก
นิพจน์ประกอบขึ้นด้วยตัวเลือก (ซึ่งส่งผลกระทบต่อการดำเนินการโดยรวมไม่ใช่การประมวลผลไฟล์เฉพาะและคืนค่าจริงเสมอ) การทดสอบ (ซึ่งส่งคืนค่าจริงหรือเท็จ) และการดำเนินการ (ซึ่งมีผลข้างเคียงและส่งคืนค่าจริงหรือ ค่าเท็จ) ทั้งหมดที่คั่นด้วยตัวดำเนินการ นิพจน์ - และ จะสันนิษฐานว่าโอเปอเรเตอร์ถูกละไว้ หากนิพจน์ไม่มีการดำเนินการอื่นที่ไม่ใช่ -prune การ พิมพ์ จะดำเนินการกับไฟล์ทั้งหมดที่นิพจน์เป็นจริง
ตัวเลือก
ตัวเลือกทั้งหมดจะเป็นจริงเสมอ พวกเขามักจะมีผลมากกว่าการประมวลผลเฉพาะเมื่อสถานที่ในการแสดงออกถึง ดังนั้นเพื่อความชัดเจนควรวางไว้ที่จุดเริ่มต้นของนิพจน์
-daystart | วัดเวลา (สำหรับ --amin, -atime, -cmin, -time, -mmin และ -mtime ) ตั้งแต่ต้นวันนี้มากกว่าจาก 24 ชั่วโมงที่ผ่านมา |
-ความลึก | ประมวลผลเนื้อหาของแต่ละไดเร็กทอรีก่อนไดเรกทอรี |
ควรตาม | การเชื่อมโยงสัญลักษณ์ Dereference Implies -leleaf |
ช่วยเหลือ หรือ - ช่วยเหลือ | พิมพ์สรุปการใช้บรรทัดคำสั่งในการ ค้นหา และออก |
- maxdepth [หมายเลข] | (จำนวนเต็มไม่ติดลบ) ของไดเรกทอรีใต้อาร์กิวเมนต์บรรทัดคำสั่ง นิพจน์ -maxdepth 0 หมายถึงเฉพาะใช้การทดสอบและการดำเนินการกับอาร์กิวเมนต์บรรทัดคำสั่ง |
- เดือน [จำนวน] | อย่าใช้การทดสอบหรือการกระทำใด ๆ ในระดับที่น้อยกว่าจำนวน (จำนวนเต็มที่ไม่ติดลบ) นิพจน์ -mindepth 1 หมายถึงประมวลผลไฟล์ทั้งหมดยกเว้นอาร์กิวเมนต์บรรทัดคำสั่ง |
-mount | ไม่ลงมาไดเรกทอรีในระบบแฟ้มอื่น ๆ ชื่อสำรองสำหรับ -xdev สำหรับความเข้ากันได้กับรุ่นอื่น ๆ ของการ ค้นหา |
-noleaf | ไม่เพิ่มประสิทธิภาพโดยสมมติว่าไดเรกทอรีที่มี 2 ไดเรกทอรีย่อยน้อยกว่านับลิงก์ยาก * |
- เวอร์ชัน หรือ - เวอร์ชัน | พิมพ์หมายเลขเวอร์ชันที่ต้องการแล้วออก |
-xdev | ไม่ลงมาไดเรกทอรีในระบบแฟ้มอื่น ๆ |
* จำเป็นต้องใช้ตัวเลือกนี้เมื่อค้นหาระบบแฟ้มที่ไม่ปฏิบัติตามกฎการเชื่อมโยงไดเรกทอรีไดเร็กทอรี Unix เช่นระบบไฟล์ของ CD-ROM หรือ MS-DOS หรือจุดเชื่อมต่อข้อมูล AFS แต่ละไดเร็กทอรีในระบบไฟล์ Unix ปกติจะมีลิงก์อย่างน้อย 2 รายการ ได้แก่ ชื่อและ ไฟล์ (ระยะเวลา) นอกจากนี้ไดเรกทอรีย่อย (ถ้ามี) แต่ละรายการมี .. เชื่อมโยงกับไดเรกทอรีนั้น
เมื่อ พบ คือการตรวจสอบไดเรกทอรีหลังจากที่มี statted ไดเรกทอรีย่อยสองน้อยกว่าจำนวนลิงค์ของไดเรกทอรีจะรู้ว่าส่วนที่เหลือของรายการในไดเร็กทอรีไม่ใช่ไดเรกทอรี (ไฟล์ ใบไม้ ในโครงสร้างไดเร็กทอรี) หากจำเป็นต้องตรวจสอบเฉพาะชื่อไฟล์เท่านั้นจึงไม่จำเป็นต้องระบุค่าเหล่านี้ นี้จะช่วยให้เพิ่มขึ้นอย่างมีนัยสำคัญในการค้นหาความเร็ว
การทดสอบ
อาร์กิวเมนต์ตัวเลขสามารถระบุได้ดังนี้
n + | สำหรับมากกว่า n |
-n | สำหรับน้อยกว่า n |
n | สำหรับ n ตรง |
-amin n | ไฟล์ถูกเข้าถึงครั้งล่าสุดเมื่อไม่นานมานี้ |
- ใหม่ [ไฟล์] | เพิ่งมีการเข้าถึง ไฟล์ เมื่อไม่นานมานี้มีการแก้ไข ไฟล์ - ใหม่จะได้รับผลกระทบโดย - ตาม - เฉพาะเมื่อ - ตามมาก่อน - อีกครั้งในบรรทัดคำสั่ง |
เวลา n | ไฟล์ถูกเข้าถึงล่าสุด n * 24 ชั่วโมงที่ผ่านมา |
- n n | สถานะของไฟล์มีการเปลี่ยนแปลงครั้งล่าสุดเมื่อไม่นานมานี้ |
-cnewer [ไฟล์] | สถานะไฟล์ได้รับการเปลี่ยนแปลงครั้งล่าสุดเมื่อเร็ว ๆ นี้กว่าที่มีการแก้ไขไฟล์ - cnewer จะได้รับผลกระทบจาก - -follow เท่านั้นถ้า - ตาม มาก่อน - 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] | ชอบ - ชื่อ แต่การจับคู่เป็นกรณีที่ไม่รู้สึกตัว ตัวอย่างเช่นรูปแบบ สำหรับ * และ F? ตรงกับชื่อไฟล์ Foo , FOO , foo , fOo ฯลฯ |
-inum n | ไฟล์มีหมายเลข inode n |
-ipath [pattern] | ชอบ -path แต่การจับคู่เป็นกรณี insensitive |
-exgex [รูปแบบ] | เช่นเดียวกับ -regex แต่การจับคู่แบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ |
เชื่อมโยง n | ไฟล์มี n ลิงก์ |
รูปแบบ | ไฟล์เป็นลิงก์สัญลักษณ์ซึ่งมีเนื้อหาตรงกับรูปแบบเชลล์ metacharacters ไม่ถือว่า / หรือ พิเศษ |
-mmin n | ข้อมูลของไฟล์ได้รับการแก้ไขครั้งล่าสุดเมื่อไม่นานมานี้ |
- mtime n | ข้อมูลของไฟล์ได้รับการปรับปรุงครั้งล่าสุด n * 24 ชั่วโมงที่ผ่านมา |
- ชื่อ [รูปแบบ] | ฐานของชื่อไฟล์ (เส้นทางที่มีไดเรกทอรีชั้นนำที่ลบออก) ตรงกับรูปแบบของเชลล์ อักขระ metacharacters ( * ,? และ [] ) ไม่ตรงกับ a . ที่จุดเริ่มต้นของชื่อฐาน เมื่อต้องการละเว้นไดเรกทอรีและไฟล์ที่อยู่ภายใต้นั้นให้ใช้ -prune ; ดูตัวอย่างในคำอธิบายของ -path |
ใหม่ [ไฟล์] | ไฟล์ได้รับการแก้ไขเมื่อเร็ว ๆ นี้กว่า ไฟล์ นิพจน์ -newer จะได้รับผลกระทบจาก - -follow เท่านั้นหาก -follow มาก่อน -newer ในบรรทัดคำสั่ง |
-nouser | ไม่มีผู้ใช้ใดที่ตรงกับ ID ผู้ใช้ที่เป็นตัวเลขของไฟล์ |
-nogroup | ไม่มีกลุ่มใดที่สอดคล้องกับ ID กลุ่มตัวเลขของไฟล์ |
-path [pattern] | ชื่อไฟล์ตรงกับรูปแบบลายเชลล์ metacharacters ไม่ถือว่า / หรือ พิเศษ; ตัวอย่างเช่นค้นหา -path './sr*sc จะพิมพ์รายการสำหรับไดเรกทอรีที่ชื่อ ./src/misc (ถ้ามีอยู่) หากไม่สนใจโครงสร้างไดเร็กทอรีให้ใช้ -prune แทนการตรวจสอบไฟล์ทั้งหมดในโครงสร้าง ตัวอย่างเช่นในการข้ามไดเร็กทอรี src / emacs และไฟล์และไดเร็กทอรีทั้งหมดภายใต้นั้นและพิมพ์ชื่อของไฟล์อื่น ๆ ที่พบไว้ให้ทำดังนี้: ค้นหา -path './src/emacs' -prune -o -print |
-perm [โหมด] | บิตการให้สิทธิ์ของไฟล์นั้นตรงกับ [โหมด] (รูปแปดหรือสัญลักษณ์) โหมดสัญลักษณ์ใช้โหมด 0 เป็นจุดเริ่มต้น |
-perm -mode | บิตอนุญาตทั้งหมด [โหมด] ถูกตั้งค่าไว้สำหรับไฟล์ |
-perm + โหมด | บิตอนุญาตใด ๆ [โหมด] ถูกตั้งค่าไว้สำหรับไฟล์ |
-regex [รูปแบบ] | ชื่อไฟล์ตรงกับ รูปแบบ นิพจน์ทั่วไป นี่เป็นการจับคู่บนเส้นทางทั้งหมดไม่ใช่การค้นหา ตัวอย่างเช่นเพื่อให้ตรงกับไฟล์ที่ชื่อ. /fubar3 คุณสามารถใช้นิพจน์ทั่วไป * bar หรือ b. 3 แต่ไม่ b. r3 . |
ขนาด n [bckw] | ไฟล์ใช้หน่วยพื้นที่ n หน่วยเป็นบล็อก 512 ไบต์ตามค่าเริ่มต้นหรือถ้า b ทำตาม n ไบต์ถ้า c ทำตาม n กิโลไบต์ถ้า k ตาม n หรือ 2 ไบต์ถ้า w ทำตาม n ขนาดจะไม่นับจำนวนบล็อคทางอ้อม แต่จะนับจำนวนบล็อกในไฟล์ที่เบาบางที่ไม่ได้รับการจัดสรรจริง |
-true | เสมอจริง |
ประเภท c | ไฟล์เป็นประเภท c : |
ข | บล็อก (บัฟเฟอร์) พิเศษ |
ค | อักขระ (unbuffered) พิเศษ |
d | ไดเรกทอรี |
พี | ท่อที่มีชื่อ (FIFO) |
ฉ | ไฟล์ปกติ |
ล. | ลิงค์สัญลักษณ์ |
s | เบ้า |
D | ประตู (Solaris) |
- ให้ n | ID ผู้ใช้ที่เป็นตัวเลขของไฟล์คือ n |
ใช้ n | ไฟล์ถูกเข้าถึงครั้งล่าสุดเมื่อ n วันหลังจากเปลี่ยนสถานะล่าสุด |
- ผู้ใช้ uname | ไฟล์เป็นของผู้ใช้ที่ไม่ได้รับอนุญาต (ID ผู้ใช้ ID อนุญาต) |
-xtype c | เช่นเดียวกับ ชนิด ยกเว้นไฟล์เป็นลิงก์สัญลักษณ์ สำหรับการเชื่อมโยงสัญลักษณ์: ถ้าไม่ได้รับการกำหนดตาม - จริงถ้าไฟล์เป็นลิงค์ไปยังไฟล์ประเภท c ; ถ้า - ตามที่ ได้รับจริงถ้า c คือ l ในคำอื่น ๆ สำหรับการเชื่อมโยงสัญลักษณ์, -tytype ตรวจสอบชนิดของไฟล์ที่ ชนิด ไม่ได้ตรวจสอบ |
การปฏิบัติ
- คำสั่ง exec;
ดำเนินการ คำสั่ง ; true ถ้ามีการส่งกลับสถานะ 0 อาร์กิวเมนต์ทั้งหมดต่อไปนี้เพื่อ ค้นหา ถูกนำไปเป็นอาร์กิวเมนต์ของคำสั่งจนกว่าอาร์กิวเมนต์ประกอบด้วย `; ' จะพบ สตริง `{} 'จะถูกแทนที่ด้วยชื่อไฟล์ปัจจุบันที่กำลังประมวลผลทุกที่ที่เกิดขึ้นในอาร์กิวเมนต์ของคำสั่งไม่ใช่เฉพาะในอาร์กิวเมนต์ที่อยู่คนเดียวเช่นเดียวกับในบางรุ่นของการ ค้นหา โครงสร้างทั้งสองแบบนี้อาจจำเป็นต้องหลบหนี (ด้วย `\ ') หรืออ้างเพื่อปกป้องพวกเขาจากการขยายตัวโดยเปลือก คำสั่งจะถูกเรียกใช้ในไดเร็กทอรีเริ่มต้น
- ไฟล์ fls
ทรู; เช่น -ls แต่เขียนไปยัง ไฟล์ เช่นพิมพ์
ไฟล์พิมพ์
ทรู; พิมพ์ชื่อไฟล์แบบเต็มลงใน ไฟล์ หาก ไฟล์ ไม่ พบ เมื่อ ค้นหา ถูกเรียกใช้จะถูกสร้างขึ้น ถ้าไม่มีอยู่จะถูกตัดทอน ชื่อไฟล์ `` / dev / stdout '' และ `` / dev / stderr '' ถูกจัดการโดยเฉพาะ หมายถึงเอาท์พุทมาตรฐานและเอาท์พุทข้อผิดพลาดมาตรฐานตามลำดับ
ไฟล์ -print0
ทรู; เช่น -print0 แต่เขียนไปยัง ไฟล์ เช่น -print
รูปแบบ ไฟล์ fprintf
ทรู; เช่น -printf แต่เขียนไปยัง ไฟล์ เช่น - พิมพ์
คำสั่ง -ok;
เช่น - ไม่ต้องถามผู้ใช้ก่อน (ในอินพุตมาตรฐาน); ถ้าการตอบสนองไม่ได้เริ่มต้นด้วย `y 'หรือ` Y' อย่าใช้คำสั่งและส่งกลับค่า false
-พิมพ์
ทรู; พิมพ์ชื่อไฟล์แบบเต็มบนเอาต์พุตมาตรฐานตามด้วยบรรทัดใหม่
-print0
ทรู; พิมพ์ชื่อไฟล์แบบเต็มบนเอาต์พุตมาตรฐานตามด้วยอักขระ null ซึ่งช่วยให้ชื่อไฟล์ที่มีบรรทัดใหม่ที่จะตีความได้อย่างถูกต้องโดยโปรแกรมที่ประมวลผลผลลัพธ์การ ค้นหา
รูปแบบ ลายนิ้วมือ
ทรู; พิมพ์ รูปแบบ บนเอาต์พุตมาตรฐานแปลคำสั่ง `\ '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 ซึ่งเป็นเช่นเดียวกับ% 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 เป็น false
expr1 -a expr2
เหมือนกับ expr1 expr2
expr1- และ expr2
เหมือนกับ expr1 expr2
expr1 -o expr2
หรือ; expr2 ไม่ได้รับการประเมินถ้า expr1 เป็น true
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ค้นหาไฟล์ชื่อ core ในหรือใต้ไดเร็กทอรี / tmp และลบออก โปรดทราบว่าการดำเนินการนี้จะทำงานไม่ถูกต้องหากมีชื่อไฟล์ที่มีบรรทัดใหม่บรรทัดคำพูดเดี่ยวหรือสองคำหรือเว้นวรรค
หา / tmp -name core-type f -print0 | xargs -0 / bin / rm -fค้นหาไฟล์ชื่อ core ในหรือใต้ไดเร็กทอรี / tmp และลบไฟล์เหล่านั้นประมวลผลชื่อไฟล์ในลักษณะที่ชื่อไฟล์หรือไดเร็กทอรีที่มีเครื่องหมายอัญประกาศเดี่ยวหรือสองช่องว่างหรือบรรทัดใหม่จะถูกจัดการอย่างถูกต้อง การทดสอบ ชื่อ จะมาก่อนการทดสอบ ชนิด เพื่อหลีกเลี่ยงการเรียก stat (2) ในทุกไฟล์
หา - type f -exec file '{}' \;รันไฟล์ `ในทุกไฟล์ในหรือใต้ไดเร็กทอรีปัจจุบัน สังเกตเห็นว่าวงเล็บปีกกามีเครื่องหมายอัญประกาศเดี่ยวเพื่อป้องกันไม่ให้คำแปลเป็นเครื่องหมายวรรคตอนของเชลล์ เครื่องหมายอัฒภาคจะได้รับการป้องกันในลักษณะเดียวกันโดยใช้เครื่องหมายแบ็กสแลชแม้ว่า ';' อาจใช้ในคดีนี้ด้วยเช่นกัน
หา / \ (-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 - เวลา 0ค้นหาไฟล์ในไดเรกทอรีบ้านของคุณซึ่งได้รับการแก้ไขในช่วง 24 ชั่วโมงที่ผ่านมา คำสั่งนี้ใช้งานได้เนื่องจากเวลาตั้งแต่ไฟล์แต่ละไฟล์ถูกแก้ไขล่าสุดถูกแบ่งออกเป็น 24 ชั่วโมงและส่วนที่เหลือจะถูกยกเลิก นั่นหมายความว่าเพื่อให้ตรงกับ --mtime
0 ไฟล์จะต้องมีการแก้ไขในอดีตซึ่งน้อยกว่า 24 ชั่วโมงที่ผ่านมา
หา -perm 664ค้นหาไฟล์ที่มีสิทธิ์อ่านและเขียนสำหรับเจ้าของและกลุ่ม แต่ผู้ใช้รายอื่นสามารถอ่านได้ แต่ไม่สามารถเขียนได้ ไฟล์ที่ตรงตามเกณฑ์เหล่านี้ แต่มีสิทธิ์อื่น ๆ ที่ตั้งค่าไว้ (เช่นถ้ามีใครสามารถเรียกใช้ไฟล์) จะไม่สามารถจับคู่ได้
หา -perm -664ค้นหาไฟล์ที่มีสิทธิ์อ่านและเขียนสำหรับเจ้าของและกลุ่มและผู้ใช้คนอื่น ๆ สามารถอ่านได้โดยไม่คำนึงถึงการมีบิตพิเศษใด ๆ ที่ได้รับอนุญาต (ตัวอย่างเช่นบิตที่ปฏิบัติการได้) ซึ่งจะตรงกับไฟล์ที่มีโหมด 0777 ตัวอย่างเช่น
หา -perm / 222ค้นหาไฟล์ที่สามารถเขียนได้โดยใครบางคน (เจ้าของหรือกลุ่มของพวกเขาหรือคนอื่น)
หา -perm / 220 หาได้ -perm / u + w, g + w find -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 ตามลำดับ)
สำคัญ: ใช้คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ