วิธีค้นหาไฟล์ใน Linux?
เผยแพร่แล้ว: 2022-04-07สารบัญ
บทนำ:
ค้นหา คือยูทิลิตีบรรทัดคำสั่ง UNIX ที่ดำเนินการลำดับชั้นของไฟล์ คุณสามารถใช้เพื่อค้นหาและดำเนินการกับไฟล์และไดเร็กทอรี ไฟล์, โฟลเดอร์, ชื่อ, วันที่สร้าง, วันที่แก้ไข, เจ้าของและสิทธิ์สามารถค้นหาได้โดยใช้คำสั่งนี้
คุณสามารถรวมเข้ากับตัวเลือก '- exec
' เพื่อดำเนินการต่างๆ กับผลลัพธ์ที่พบโดยคำสั่ง find
ในบทความนี้ เราจะเรียนรู้ วิธีค้นหาไฟล์ใน linux โดยใช้คำสั่ง Find
คำสั่ง Find ทำงานอย่างไร
Find
ตำแหน่งไฟล์บนคอมพิวเตอร์ของคุณ ตามกฎของลำดับความสำคัญ มันจะประเมินแต่ละนิพจน์ จากซ้ายไปขวา ภายในแผนผังไดเร็กทอรีแต่ละอันที่ระบุโดยพาธที่กำหนด ในการดำเนินการ AND หรือในการดำเนินการ OR ผลลัพธ์จะ "ทราบ" เมื่อด้านซ้ายของนิพจน์เป็น TRUE หรือ FALSE ค้นหาแล้วย้ายไปยังเส้นทางถัดไปจนกว่าจะสำรวจเส้นทางทั้งหมดแล้ว
คำสั่ง find
เป็นเครื่องมือพื้นฐานและมีประสิทธิภาพที่สุดสำหรับการทำงานกับไฟล์บนระบบ Linux สามารถระบุตำแหน่งไฟล์ได้ด้วยตัวเองหรือร่วมกับโปรแกรมอื่นๆ
ไวยากรณ์:
find [options] [path…] [expression]
หรือ
$ find [where to start searching from]
[นิพจน์กำหนดสิ่งที่จะหา] [-ตัวเลือก] [สิ่งที่จะหา]
- การรักษาลิงก์สัญลักษณ์ ตัวเลือกการดีบัก และกลยุทธ์การปรับให้เหมาะสมทั้งหมดถูกควบคุมโดยคุณสมบัติ ตัวเลือก
- คุณสมบัติ พา ธ … ระบุไดเร็กทอรีหรือไดเร็กทอรีที่ find จะค้นหาไฟล์
- ตัวเลือก รูปแบบการค้นหา และการดำเนินการจะถูกคั่นด้วยตัวดำเนินการในแอตทริบิวต์ นิพจน์
-exec CMD : ไฟล์ที่กำลังค้นหาซึ่งตรงตามเกณฑ์ข้างต้นและคืนค่า 0 สำหรับสถานะการออกคำสั่งที่สำเร็จ
-ok CMD : คล้ายกับ -exec แต่ผู้ใช้จะได้รับแจ้งล่วงหน้า
-inum N : ค้นหาไฟล์ที่มีหมายเลข 'N' ในไอโหนด
-links N : ค้นหาไฟล์ที่มีลิงก์ 'N'
-name demo : ค้นหาไฟล์ที่มีชื่อ 'demo' ในชื่อไฟล์
- ไฟล์ใหม่กว่า : ค้นหาไฟล์ที่ได้รับการอัปเดตหรือสร้างตั้งแต่ 'file'
-perm octa l: หากการอนุญาตเป็น 'octal' ให้มองหาไฟล์
-print : พิมพ์ชื่อพาธของไฟล์ที่ระบุโดยใช้เกณฑ์ที่เหลือ
-empty : ค้นหาไฟล์และโฟลเดอร์ที่ว่างเปล่า
-size +N/-N : ค้นหาไฟล์ที่มีบล็อก 'N' 'N' ตามด้วย 'c' สามารถใช้วัดขนาดตัวอักษรได้ '+N' หมายถึงขนาด > บล็อก 'N' ในขณะที่ '-N' หมายถึงบล็อกขนาด 'N'
- ชื่อผู้ใช้ : ค้นหาไฟล์ที่มีชื่อผู้ใช้ 'ชื่อ' หรือ ID 'ชื่อ'
(expr ) : ถ้า 'expr' เป็นจริง แสดงว่าจริง; ใช้สำหรับเกณฑ์การจัดกลุ่มด้วย OR หรือ AND
! expr : True ถ้า 'expr' เป็นเท็จ
ตัวเลือก (ซึ่งส่งผลต่อการทำงานทั่วไปมากกว่าการประมวลผลไฟล์และคืนค่าจริงเสมอ) การทดสอบ (ซึ่งคืนค่าจริงหรือเท็จ) และการดำเนินการ (ซึ่งมีผลข้างเคียงและส่งคืนค่าจริงหรือเท็จ) ทั้งหมดแยกจากกันโดยตัวดำเนินการในนิพจน์ . เมื่อตัวดำเนินการไม่อยู่ -and จะถูกอนุมาน
หากนิพจน์ไม่มีการดำเนินการเพิ่มเติม -prune, -print จะถูกนำไปใช้กับไฟล์ทั้งหมดที่เป็นจริง
ตัวอย่างเช่น ให้เราดูคำสั่งต่อไปนี้เป็นตัวอย่าง
find -L /var/www -name "*.js"
- ตัวเลือก -L (ตัวเลือก) บอกคำสั่ง find ให้ติดตามลิงก์สัญลักษณ์
- /var/www (เส้นทาง…) ระบุ ไดเร็กทอรี ที่จะค้นหา
- (นิพจน์) -name "*.js บอกให้ find ค้นหา ไฟล์ที่ลงท้ายด้วย .js (ไฟล์ JavaScript)
วิธีค้นหาไฟล์ใน linux โดยใช้ชื่อ
ไฟล์สามารถพบได้โดยใช้ชื่อโดยใช้คำสั่ง find คุณสามารถค้นหาไฟล์โดยใช้ชื่อไฟล์โดยใช้ตัวเลือก -name

find -type f -name functions.php

ใช้ -iname แทน -name เพื่อเรียกใช้การค้นหาแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
วิธีค้นหาไฟล์ใน linux ตามนามสกุล
คุณสามารถค้นหาไฟล์ตามนามสกุลได้เช่นเดียวกับการค้นหาไฟล์ตามชื่อ
find -type f -name '*.php'


เพื่อค้นหาไฟล์ที่ไม่มีนามสกุล ให้ใช้คำสั่งต่อไปนี้
find -type f - not -name '*.php'


ค้นหาไฟล์ตามประเภท
หากคุณต้องการค้นหาไฟล์ประเภทใดประเภทหนึ่ง เช่น ไฟล์ปกติ ไดเร็กทอรี หรือลิงก์สัญลักษณ์ คุณอาจต้องค้นหาไฟล์บางประเภท ทุกอย่างใน Linux เป็นไฟล์
ระบุประเภทของไฟล์ที่คุณกำลังค้นหาโดยใช้อ็อพชัน -type และหนึ่งในคำอธิบายต่อไปนี้:
- f: ไฟล์ปกติ
- d: ไดเรกทอรี
- l: ลิงค์สัญลักษณ์
- c: อุปกรณ์ตัวละคร
- b: บล็อกอุปกรณ์
- p: ชื่อไปป์ (FIFO)
- s: ซ็อกเก็ต
find public_html/wp-admin/ -type d

ค้นหาไฟล์ตามขนาด
ควรส่งพารามิเตอร์ -size ไปพร้อมกับพารามิเตอร์ size เพื่อค้นหาไฟล์ตามขนาด คำต่อท้ายต่อไปนี้สามารถใช้เพื่อระบุขนาดไฟล์:
- b: บล็อก 512 ไบต์ (ค่าเริ่มต้น)
- c: ไบต์
- w: คำสองไบต์
- k: กิโลไบต์
- M: เมกะไบต์
- G: กิกะไบต์
find . -type f -size -1M

หากคุณต้องการค้นหาไฟล์ที่มีขนาดมากกว่า 1MB ให้ใช้ +
find . -type f -size +1M

คุณยังสามารถค้นหาไฟล์ภายในช่วงขนาดได้
find . -type f -size +1M -size 3M

ค้นหาไฟล์โดยการแก้ไข
นอกจากนี้ยังสามารถใช้คำสั่ง find เพื่อค้นหาไฟล์โดยพิจารณาจากเวลาที่มีการแก้ไข เข้าถึง หรือเปลี่ยนแปลงครั้งล่าสุด
ใช้อักขระบวกและลบสำหรับ "มากกว่า" และ "น้อยกว่า" เช่นเดียวกับที่คุณทำเมื่อค้นหาตามขนาด
find . -mtime +30 -daystart



ค้นหาโดยได้รับอนุญาต
คุณสามารถใช้ตัวเลือก -perm เพื่อค้นหาไฟล์ตามการอนุญาต
find public_html/wp-admin/css -perm /444

/ ใช้เป็นคำนำหน้า อย่างน้อยในหมวดหมู่ต้องมีบิตที่เกี่ยวข้องเป็นอย่างน้อยเพื่อให้ไฟล์ตรงกัน
-prefix ดังนั้นอย่างน้อยต้องตั้งค่าบิตที่ระบุ
ค้นหาโดยเจ้าของ
ใช้พารามิเตอร์ -user และ -group เพื่อค้นหาไฟล์ที่เป็นของผู้ใช้หรือกลุ่มเฉพาะ
find -user testc7963

บทสรุป
เราได้สาธิตวิธีการใช้คำสั่ง find กับเกณฑ์และข้อโต้แย้งที่หลากหลาย
บทความนี้ควรให้ความเข้าใจพื้นฐานเกี่ยวกับวิธีค้นหาไฟล์ในคอมพิวเตอร์ Linux