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

สารบัญ:

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

วีดีโอ: 3 วิธีในการค้นหาไฟล์ใน Linux

วีดีโอ: 3 วิธีในการค้นหาไฟล์ใน Linux
วีดีโอ: วิธีแก้ง่ายๆ การเชื่อมต่อของคุณไม่เป็นส่วนตัว 2024, อาจ
Anonim

การค้นหาไฟล์ในระบบ Linux อาจเป็นเรื่องยากหากคุณไม่ทราบวิธี วิธีที่ดีที่สุดในการค้นหาไฟล์คือการใช้คำสั่งเทอร์มินัลหลายคำสั่ง การใช้คำสั่งเหล่านี้อย่างเชี่ยวชาญจะทำให้คุณสามารถควบคุมไฟล์ของคุณได้อย่างสมบูรณ์ และมีประสิทธิภาพมากกว่าฟังก์ชันการค้นหาทั่วไปบนระบบปฏิบัติการอื่นๆ

ขั้นตอน

วิธีที่ 1 จาก 3: การใช้ "ระบุตำแหน่ง"

690519 10 1
690519 10 1

ขั้นตอนที่ 1. ติดตั้งไฟล์

ค้นหา ฟังก์ชั่น

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

  • พิมพ์ sudo apt-get update แล้วกด ↵ Enter
  • คุณติดตั้งได้ใน Debian และ Ubuntu ดังนี้: พิมพ์ sudo apt-get install mlocate แล้วกด ↵ Enter หากติดตั้งระบุตำแหน่งแล้ว คุณจะเห็นข้อความ mlocate เป็นเวอร์ชันใหม่ล่าสุดอยู่แล้ว
  • ใน Arch Linux ให้ใช้ตัวจัดการแพ็คเกจ pacman: pacman -S mlocate
  • สำหรับ Gentoo ให้ใช้excel:emamlocate
690519 11 1
690519 11 1

ขั้นตอนที่ 2. อัปเดต

ค้นหา ฐานข้อมูล

คำสั่ง find จะไม่สามารถค้นหาสิ่งใดได้จนกว่าจะสร้างและปรับปรุงฐานข้อมูล สิ่งนี้เกิดขึ้นโดยอัตโนมัติทุกวัน แต่คุณสามารถอัปเดตด้วยตนเองได้เช่นกัน คุณจะต้องดำเนินการนี้หากต้องการเริ่มใช้การค้นหาทันที

พิมพ์ sudo updatedb แล้วกด ↵ Enter

690519 12 1
690519 12 1

ขั้นตอนที่ 3 ใช้

ค้นหา เพื่อทำการค้นหาอย่างง่าย

คำสั่ง find นั้นรวดเร็ว แต่ไม่มีตัวเลือกมากเท่ากับคำสั่ง find คุณสามารถค้นหาไฟล์พื้นฐานได้ในลักษณะเดียวกับคำสั่ง find

ค้นหา -i "*.jpg"

  • คำสั่งนี้จะค้นหาไฟล์ที่มีนามสกุล-j.webp" />
  • เช่นเดียวกับคำสั่ง find -i จะละเว้นกรณีของการสืบค้นของคุณ
690519 13 1
690519 13 1

ขั้นตอนที่ 4 จำกัดผลการค้นหาของคุณ

หากการค้นหาของคุณให้ผลลัพธ์มากเกินไปที่จะจัดการ คุณสามารถตัดออกได้โดยใช้ตัวเลือก -n ตามด้วยจำนวนผลลัพธ์ที่คุณต้องการให้แสดง

ค้นหา -n 20 -i "*.jpg"

  • จะแสดงเฉพาะผลลัพธ์ 20 รายการแรกที่ตรงกับคำค้นหาเท่านั้น
  • คุณยังสามารถใช้ | ไปป์เพื่อส่งผลให้น้อยลงเพื่อการเลื่อนที่ง่าย

วิธีที่ 2 จาก 3: การใช้ "find"

690519 1 1
690519 1 1

ขั้นตอนที่ 1. ค้นหาไฟล์ตามชื่อไฟล์

นี่คือการค้นหาพื้นฐานที่สุดที่คุณสามารถทำได้โดยใช้คำสั่ง find คำสั่งด้านล่างจะค้นหาคำค้นหาในไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อยใดๆ

ค้นหา -iname "ชื่อไฟล์"

การใช้ -iname แทน -name จะละเว้นกรณีของการสืบค้นของคุณ คำสั่ง -name คำนึงถึงขนาดตัวพิมพ์

690519 2 1
690519 2 1

ขั้นตอนที่ 2 ตั้งค่าการค้นหาเพื่อเริ่มต้นในไดเรกทอรีราก

หากคุณต้องการค้นหาทั้งระบบ คุณสามารถเพิ่ม / ตัวแก้ไข ลงในแบบสอบถามได้ สิ่งนี้จะบอก find ให้ค้นหาไดเร็กทอรีทั้งหมดที่เริ่มต้นจากไดเร็กทอรีรูท

ค้นหา / -iname "ชื่อไฟล์"

  • คุณสามารถเริ่มการค้นหาในไดเร็กทอรีเฉพาะโดยแทนที่ / ด้วยพาธไดเร็กทอรี เช่น /home/pat
  • คุณสามารถใช้. แทน / เพื่อบังคับการค้นหาให้ดำเนินการในไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อยเท่านั้น
690519 3 1
690519 3 1

ขั้นตอนที่ 3 ใช้อักขระตัวแทน

* เพื่อค้นหาสิ่งที่ตรงกับส่วนของข้อความค้นหา

อักขระตัวแทน * อาจมีประโยชน์ในการค้นหาบางอย่างหากคุณไม่ทราบชื่อเต็ม หรือหากคุณต้องการค้นหาทุกอย่างที่มีส่วนขยายเฉพาะ

ค้นหา /home/pat -iname "*.conf"

  • การดำเนินการนี้จะส่งคืนไฟล์.conf ทั้งหมดในโฟลเดอร์ผู้ใช้ของ Pat (และไดเรกทอรีย่อย)
  • คุณยังสามารถใช้เพื่อค้นหาทุกสิ่งที่ตรงกับส่วนหนึ่งของชื่อไฟล์ ตัวอย่างเช่น หากคุณมีเอกสารที่เกี่ยวข้องกับ wikiHow จำนวนมาก คุณสามารถค้นหาเอกสารทั้งหมดได้โดยพิมพ์ "*wiki*"
690519 4 1
690519 4 1

ขั้นตอนที่ 4 ทำให้ผลการค้นหาของคุณจัดการได้ง่ายขึ้น

หากคุณได้รับผลการค้นหาจำนวนมาก อาจเป็นเรื่องยากที่จะกรองผ่านผลการค้นหาเหล่านี้ ใช้ | และส่งผลการค้นหาไปยังโปรแกรมกรอง "น้อย" ซึ่งจะทำให้คุณสามารถเลื่อนดูและกรองผลลัพธ์ได้ง่ายขึ้นมาก

find /home/pat -iname "*.conf" | น้อย

690519 5 1
690519 5 1

ขั้นตอนที่ 5. ค้นหาประเภทผลลัพธ์ที่เฉพาะเจาะจง

คุณสามารถใช้ตัวแก้ไขเพื่อส่งคืนผลลัพธ์บางประเภทเท่านั้น คุณสามารถค้นหาไฟล์ปกติ (f) ไดเร็กทอรี (d) ลิงก์สัญลักษณ์ (l) อุปกรณ์อักขระ (c) และอุปกรณ์บล็อก (b) โดยใช้ตัวปรับแต่งที่ถูกต้อง

ค้นหา / -type f -iname "ชื่อไฟล์"

690519 6 1
690519 6 1

ขั้นตอนที่ 6 กรองผลการค้นหาของคุณตามขนาด

หากคุณมีไฟล์จำนวนมากที่มีชื่อคล้ายกัน แต่ทราบขนาดที่คุณต้องการ คุณสามารถกรองผลลัพธ์ของเราตามขนาดได้

ค้นหา / -ขนาด +50M -iname "ชื่อไฟล์"

  • ซึ่งจะแสดงผลลัพธ์ที่มีขนาด 50 เมกะไบต์หรือใหญ่กว่า คุณสามารถใช้ + หรือ - เพื่อค้นหาขนาดที่มากขึ้นหรือน้อยลง การละเว้น + หรือ - จะค้นหาไฟล์ที่มีขนาดตรงตามที่ระบุ
  • คุณสามารถกรองตามไบต์ (c), กิโลไบต์ (k), เมกะไบต์ (M), กิกะไบต์ (G) หรือบล็อก 512 ไบต์ (b) โปรดทราบว่าแฟล็กขนาดจะคำนึงถึงขนาดตัวพิมพ์
690519 7 1
690519 7 1

ขั้นตอนที่ 7 ใช้ตัวดำเนินการบูลีนเพื่อรวมตัวกรองการค้นหา

คุณสามารถใช้ตัวดำเนินการ -and, -or และ -not เพื่อรวมการค้นหาประเภทต่างๆ เข้าด้วยกัน

ค้นหา /travelphotos -type f -size +200k -not -iname "*2015*"

คำสั่งจะค้นหาไฟล์ในไดเร็กทอรี "travelphotos" ที่มีขนาดมากกว่า 200 กิโลไบต์ แต่ไม่มี "2015" ในชื่อไฟล์

690519 8 1
690519 8 1

ขั้นตอนที่ 8 ค้นหาไฟล์ตามเจ้าของหรือสิทธิ์

หากคุณกำลังพยายามค้นหาไฟล์ที่ผู้ใช้เป็นเจ้าของ หรือไฟล์ที่มีสิทธิ์บางอย่าง คุณสามารถจำกัดการค้นหาให้แคบลงได้

find / -user pat -iname "filename" ค้นหา / -group users -iname "filename" find / -perm 777 -iname "filename"

ตัวอย่างข้างต้นจะค้นหาผู้ใช้ กลุ่ม หรือสิทธิ์ที่ระบุสำหรับข้อความค้นหา คุณยังสามารถละเว้นการสืบค้นชื่อไฟล์เพื่อส่งคืนไฟล์ทั้งหมดที่ตรงกับประเภทนั้น ตัวอย่างเช่น find / -perm 777 จะส่งคืนไฟล์ทั้งหมดด้วยสิทธิ์ 777 (ไม่มีข้อจำกัด)

690519 9 1
690519 9 1

ขั้นตอนที่ 9 รวมคำสั่งเพื่อดำเนินการเมื่อพบไฟล์

คุณสามารถรวมคำสั่ง find กับคำสั่งอื่นๆ เพื่อให้คุณสามารถดำเนินการกับไฟล์ที่ส่งคืนโดยคิวรี แยกคำสั่ง find และคำสั่งที่สองด้วยแฟล็ก -exec แล้วจบบรรทัดด้วย {};

หา. -type f -perm 777 -exec chmod 755 {};

สิ่งนี้จะค้นหาไดเรกทอรีปัจจุบัน (และไดเรกทอรีย่อยทั้งหมด) สำหรับไฟล์ที่มีสิทธิ์ 777 จากนั้นจะใช้คำสั่ง chmod เพื่อเปลี่ยนการอนุญาตเป็น 755

วิธีที่ 3 จาก 3: ค้นหาข้อความในไฟล์

690519 14 1
690519 14 1

ขั้นตอนที่ 1. ใช้

grep คำสั่งค้นหาสตริงข้อความภายในไฟล์

หากคุณกำลังมองหาไฟล์ที่มีวลีหรือสตริงอักขระบางตัว คุณสามารถใช้คำสั่ง grep คำสั่ง grep พื้นฐานถูกจัดรูปแบบดังนี้:

grep -r -i "คำค้นหา" /path/to/directory/

  • -r ตั้งค่าการค้นหาเป็น "แบบเรียกซ้ำ" ดังนั้นจะค้นหาไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมดสำหรับไฟล์ใดๆ ที่มีสตริงการสืบค้น
  • -i บ่งชี้ว่าเคียวรีไม่คำนึงถึงขนาดตัวพิมพ์ หากคุณต้องการบังคับให้การค้นหาสนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ให้ข้ามตัวดำเนินการ -i
690519 15 1
690519 15 1

ขั้นตอนที่ 2 ตัดข้อความพิเศษออก

เมื่อคุณทำการค้นหา grep ตามด้านบน คุณจะเห็นชื่อไฟล์พร้อมกับข้อความที่มีการเน้นข้อความค้นหาที่ตรงกัน คุณสามารถซ่อนข้อความที่ตรงกันและเพียงแค่แสดงชื่อไฟล์และเส้นทางโดยรวมถึงสิ่งต่อไปนี้:

grep -r -i "คำค้นหา" /path/to/directory/ | ตัด -d: -f1

690519 16 1
690519 16 1

ขั้นตอนที่ 3 ซ่อนข้อความแสดงข้อผิดพลาด

คำสั่ง grep จะส่งคืนข้อผิดพลาดเมื่อพยายามเข้าถึงโฟลเดอร์โดยไม่มีการอนุญาตที่ถูกต้องหรือทำงานในโฟลเดอร์ว่าง คุณสามารถส่งข้อความแสดงข้อผิดพลาดไปที่ /dev/null ซึ่งจะซ่อนจากเอาต์พุต

grep -r -i "คำค้นหา" /path/to/directory/ 2>/dev/null

แนะนำ: