การค้นหาไฟล์บนระบบ Linux อาจเป็นเรื่องยากหากคุณไม่ทราบวิธี วิธีที่ดีที่สุดในการค้นหาไฟล์บน Linux คือการใช้คำสั่งเทอร์มินัลสองสามคำสั่ง การใช้คำสั่งเหล่านี้อย่างเชี่ยวชาญจะทำให้คุณสามารถควบคุมไฟล์ได้อย่างสมบูรณ์ และมีประโยชน์มากกว่าฟังก์ชันการค้นหาทั่วไปของระบบปฏิบัติการอื่นๆ
ขั้นตอน
วิธีที่ 1 จาก 3: การใช้ "find"
ขั้นตอนที่ 1. ค้นหาไฟล์ตามชื่อ
การค้นหาประเภทนี้เป็นการค้นหาพื้นฐานที่สุด และคุณสามารถทำได้ด้วยคำสั่ง find คำสั่งด้านล่างจะทำการค้นหาตามคำที่ป้อนในไดเร็กทอรีที่คุณอยู่ เช่นเดียวกับไดเร็กทอรีย่อยภายใน
ค้นหา -iname "ชื่อไฟล์"
หากคุณใช้ -iname แทน -name ความแตกต่างระหว่างคีย์เวิร์ดตัวพิมพ์ใหญ่และตัวพิมพ์เล็กจะไม่มีผล คำสั่ง -name จะพิจารณาอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเป็นอักขระที่แตกต่างกัน
ขั้นตอนที่ 2 ตั้งค่าการค้นหาเพื่อเริ่มต้นในไดเรกทอรีราก
หากคุณต้องการค้นหาทั้งระบบ คุณสามารถเพิ่ม / modifier ให้กับคำหลักได้ โมดิฟายเออร์จะบอกคำสั่ง find ให้ค้นหาอย่างละเอียด โดยเริ่มจากไดเร็กทอรีราก
ค้นหา / -iname "ชื่อไฟล์"
- คุณสามารถเริ่มการค้นหาในไดเร็กทอรีเฉพาะโดยแทนที่ / modifier ด้วยพาธไดเร็กทอรี เช่น /home/pat
- คุณสามารถใช้ได้. นอกเหนือจาก / เพื่อให้การค้นหาดำเนินการได้เฉพาะในไดเร็กทอรีที่คุณอยู่และรวมถึงไดเร็กทอรีย่อยภายใน
ขั้นตอนที่ 3 ใช้อักขระตัวแทน
* เพื่อค้นหาสิ่งที่ตรงกับคำหลักของคุณเพียงบางส่วน
อักขระตัวแทน * สามารถใช้เพื่อค้นหาไฟล์ที่คุณไม่ทราบชื่อเต็ม หรือหากคุณต้องการค้นหาไฟล์ทั้งหมดที่มีนามสกุลเฉพาะ
ค้นหา /home/pat -iname "*.conf"
- คำสั่งดังกล่าวจะส่งคืนไฟล์.conf ทั้งหมดในไดเร็กทอรีผู้ใช้ชื่อ Pat (รวมถึงไดเร็กทอรีย่อยในนั้น)
- คุณยังสามารถใช้เพื่อค้นหาสิ่งใดก็ได้ที่มีชื่อตรงกับคำหลักนั้นเพียงบางส่วน ตัวอย่างเช่น หากคุณมีเอกสารที่เกี่ยวข้องกับ wikiHow จำนวนมาก คุณสามารถค้นหาได้โดยพิมพ์ "*wiki*"
ขั้นตอนที่ 4 ทำให้ผลการค้นหาง่ายต่อการจัดการ
หากผลการค้นหามากเกินไป คุณจะค้นหาไฟล์ที่ต้องการได้ยาก ใช้อักขระ | และส่งผลการค้นหากลับไปที่โปรแกรมกรอง "น้อย" ด้วยวิธีนี้ คุณสามารถเลื่อนดูและกรองผลการค้นหาได้ง่ายขึ้น
find /home/pat -iname "*.conf" | น้อย
ขั้นตอนที่ 5. ค้นหาผลการค้นหาด้วยประเภทเฉพาะ
คุณสามารถใช้ตัวแก้ไขเพื่อส่งคืนผลลัพธ์บางประเภทเท่านั้น คุณสามารถค้นหาไฟล์ปกติ (f) ไดเร็กทอรี (d) ลิงก์สัญลักษณ์ (l) อุปกรณ์อักขระ (c) และอุปกรณ์บล็อก (b) โดยใช้ตัวปรับแต่งที่เหมาะสม
ค้นหา / -type f -iname "ชื่อไฟล์"
ขั้นตอนที่ 6 กรองผลการค้นหาตามขนาด
หากคุณมีไฟล์จำนวนมากที่มีชื่อคล้ายกัน แต่ทราบขนาดของไฟล์ที่คุณต้องการ คุณสามารถกรองการค้นหาตามขนาดได้
ค้นหา / -ขนาด +50M -iname "ชื่อไฟล์"
- คำสั่งดังกล่าวจะส่งคืนผลการค้นหาตั้งแต่ 50 เมกะไบต์ขึ้นไป คุณสามารถใช้ + หรือ - เพื่อค้นหาไฟล์ที่มีขนาดใหญ่กว่าหรือเล็กกว่าได้ การละเว้นเครื่องหมาย + หรือ - ทำให้การค้นหาส่งคืนเฉพาะผลลัพธ์ที่มีขนาด "ถูกต้อง" อย่างแท้จริง
- คุณสามารถกรองการค้นหาตามไบต์ (c), กิโลไบต์ (k), เมกะไบต์ (M), กิกะไบต์ (G) หรือ 512 ไบต์ (b) บล็อก โปรดทราบว่าเครื่องหมายแยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
ขั้นตอนที่ 7 ใช้ตัวดำเนินการบูลีนเพื่อรวมตัวกรองการค้นหา
คุณสามารถใช้ตัวดำเนินการ -and, -or และ -not เพื่อรวมการค้นหาต่างๆ
ค้นหา /travelphotos -type f -size +200k -not -iname "*2015*"
คำสั่งด้านบนจะค้นหาไฟล์ในไดเร็กทอรี "travelphotos" ที่มีขนาดมากกว่า 200 กิโลไบต์ แต่ไม่มีคำว่า "2015" อยู่ในชื่อ
ขั้นตอนที่ 8 ทำการค้นหาไฟล์ตามชื่อเจ้าของหรือการอนุญาต
หากคุณกำลังพยายามค้นหาไฟล์เฉพาะที่เป็นของผู้ใช้รายใดรายหนึ่ง หรือกำลังมองหาไฟล์ที่มีสิทธิ์บางอย่าง คุณสามารถจำกัดการค้นหาให้แคบลงได้
find / -user pat -iname "filename" ค้นหา / -group users -iname "filename" find / -perm 777 -iname "filename"
ตัวอย่างข้างต้นจะทำการค้นหาผู้ใช้ กลุ่ม หรือสิทธิ์เฉพาะภายในคำสำคัญ คุณยังสามารถละเว้นชื่อไฟล์เพื่อส่งคืนไฟล์ทั้งหมดที่ตรงกับประเภทนั้น ตัวอย่างเช่น find / -perm 777 จะส่งคืนไฟล์ทั้งหมดด้วยการอนุญาต 777 (ไม่มีข้อจำกัด)
ขั้นตอนที่ 9 เชื่อมต่อคำสั่งเพื่อดำเนินการเมื่อพบไฟล์
คุณสามารถรวมคำสั่ง find กับคำสั่งอื่นๆ เพื่อให้คุณสามารถประมวลผลไฟล์ที่ส่งคืนโดยคีย์เวิร์ดด้วยคำสั่งนั้น แยกคำสั่ง find และคำสั่งที่สองด้วยแฟล็ก -exec จากนั้นจบบรรทัดด้วย {};
หา. -type f -perm 777 -exec chmod 755 {};
(และไดเรกทอรีย่อยทั้งหมดในนั้น) สำหรับไฟล์ที่มีสิทธิ์ 777 จากนั้นคำสั่ง chmod จะเปลี่ยนการอนุญาตเป็น 755
วิธีที่ 2 จาก 3: การใช้ "ค้นหา"
ขั้นตอนที่ 1. ติดตั้ง
ค้นหา ฟังก์ชั่น. คำสั่ง find โดยทั่วไปจะเร็วกว่าคำสั่ง find เนื่องจากการใช้ฐานข้อมูลของระบบไฟล์ของคุณ Linux บางประเภทไม่ได้ติดตั้งฟังก์ชันระบุตำแหน่ง ดังนั้นให้ป้อนคำสั่งต่อไปนี้เพื่อติดตั้ง:
- พิมพ์ sudo apt-get update จากนั้นกด Enter
- คุณสามารถติดตั้งบน Debian และ ubuntu ได้ดังนี้: พิมพ์ sudo apt-get install mlocate จากนั้นกด Enter หากติดตั้งฟังก์ชันระบุตำแหน่งไว้ก่อนหน้านี้ คุณจะเห็นข้อความ mlocate เป็นเวอร์ชันใหม่ล่าสุดอยู่แล้ว
- บน Arch Linux ให้ใช้ pacman package manager: pacman -Syu mlocate
- สำหรับ Gentoo ให้ใช้excel:emamlocate
ขั้นตอนที่ 2. อัปเดต
ค้นหา ฐานข้อมูล คุณ. คำสั่งค้นหาจะไม่พบสิ่งใดจนกว่าจะสร้างและอัปเดต กระบวนการนี้มักจะทำโดยอัตโนมัติทุกวัน แต่คุณสามารถอัปเดตได้ด้วยตนเอง คุณต้องทำเช่นนี้หากคุณต้องการใช้ฟังก์ชันค้นหาโดยเร็วที่สุด
พิมพ์ sudo updatedb แล้วกด Enter
ขั้นตอนที่ 3 ใช้นามสกุล
ค้นหา เพื่อทำการค้นหาอย่างง่าย
ฟังก์ชัน find ทำงานได้อย่างรวดเร็ว แต่ไม่มีตัวเลือกมากเท่ากับคำสั่ง find คุณสามารถค้นหาไฟล์พื้นฐานได้ในลักษณะเดียวกับคำสั่ง find
ค้นหา -i "*.jpg"
- คำสั่งด้านบนจะค้นหาไฟล์ทั้งระบบที่มีนามสกุล-j.webp" />
- เช่นเดียวกับคำสั่ง find ตัวแก้ไข -i ยังทำให้อักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในคำหลักที่พิจารณาเหมือนกัน
ขั้นตอนที่ 4 จำกัดผลการค้นหา
หากการค้นหาของคุณแสดงผลลัพธ์จำนวนมากจนยากต่อการใช้งาน คุณสามารถลดผลลัพธ์เหล่านั้นด้วยตัวแก้ไข -n ตามด้วยจำนวนผลลัพธ์ที่คุณต้องการส่งคืน
ค้นหา -n 20 -i "*.jpg"
- จะแสดงผลการค้นหาเพียง 20 รายการ
- คุณยังสามารถใช้ | เพื่อส่งผลการค้นหาไปยังโปรแกรมกรองน้อยเพื่อให้เลื่อนดูผลการค้นหาได้ง่ายขึ้น
วิธีที่ 3 จาก 3: ค้นหาข้อความในไฟล์
ขั้นตอนที่ 1. ใช้คำสั่ง
grep เพื่อค้นหาสตริงข้อความในไฟล์
หากคุณกำลังมองหาไฟล์ที่มีวลีหรือสตริงอักขระเฉพาะ คุณสามารถใช้คำสั่ง grep คำสั่ง grep พื้นฐานมีรูปแบบดังต่อไปนี้:
grep -r -i "คำค้นหา" /path/to/directory/
- ตัวแก้ไข -r ทำให้การค้นหา "แบบเรียกซ้ำ" ดังนั้นการค้นหาจะดำเนินการภายในไดเร็กทอรีและไดเร็กทอรีย่อยทั้งหมดภายในเพื่อค้นหาไฟล์ที่มีข้อความที่มีคำค้นหา
- ตัวแก้ไข -i บ่งชี้ว่าคำค้นหาไม่แยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก หากคุณต้องการบังคับให้การค้นหาแยกความแตกต่างระหว่างอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ให้ข้ามตัวแก้ไข -i
ขั้นตอนที่ 2 ลบข้อความส่วนเกิน
เมื่อทำการค้นหา grep ด้านบน คุณจะเห็นชื่อไฟล์ที่มีตัวอักษรที่ตรงกันถูกเน้นไว้ คุณสามารถซ่อนข้อความที่ตรงกันและแสดงเฉพาะชื่อไดเรกทอรีของไฟล์และเส้นทางโดยเพิ่ม:
grep -r -i "ค้นหาคำสำคัญ" /path/to/directory/ | ตัด -d: -f1
ขั้นตอนที่ 3 ซ่อนข้อความแสดงข้อผิดพลาด
คำสั่ง grep จะส่งคืนข้อผิดพลาดเมื่อพยายามเข้าถึงไดเร็กทอรีโดยไม่มีการอนุญาตที่เหมาะสมหรือเมื่อเข้าสู่ไดเร็กทอรีว่าง คุณสามารถส่งข้อความแสดงข้อผิดพลาดไปที่ /dev/null เพื่อไม่ให้ปรากฏ
grep -r -i "คำค้นหา" /path/to/directory/ 2>/dev/null