วิธีค้นหาไฟล์ใน 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

วิธีค้นหาไฟล์ใน Linux

ใช้ -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