Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Linux FIND Command พร้อมตัวอย่าง

คุณรู้หรือไม่ว่ามีไฟล์กี่ไฟล์ในการติดตั้ง Linux ใหม่? หากคุณใช้ PopOS! ตัวอย่างการกระจาย Linux มีมากกว่า 31,000 ไฟล์ นั่นคือก่อนที่คุณจะเริ่มสร้างเอกสาร จัดเก็บเพลง ดาวน์โหลดไฟล์ PDF หรือจัดระเบียบรูปภาพ

Linux FIND Command พร้อมตัวอย่าง

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

    Linux FIND Command Syntax

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

    ค้นหา [เส้นทาง] [เงื่อนไข] [การกระทำ]

    ความหมายคือ

    หา – เริ่มต้นค้นหายูทิลิตี้ใน Linux

    เส้นทาง – จะดูได้ที่ไหน

    เงื่อนไข – ข้อโต้แย้งที่คุณต้องการนำไปใช้กับการค้นหา

    การกระทำ – สิ่งที่คุณต้องการจะทำอย่างไรกับผลลัพธ์

    ตัวอย่างง่ายๆ โดยใช้ทั้งสามลักษณะดังนี้:

    หา -name file-sample.rtf -print

    ตามที่คุณเดา จะพบชื่อไฟล์ file-sample.rtf .

    ช่วงเวลา ( ) เส้นทางบอกให้ find มองหาในไดเร็กทอรีปัจจุบันและไดเร็กทอรีใด ๆ ที่อยู่ภายใน

    -ชื่อ สภาพ บอกให้หาไฟล์ที่มีชื่อเฉพาะนั้นมา

    -print การดำเนินการบอกให้ FIND แสดงผลบนหน้าจอ

    จุดและ -print เป็นค่าเริ่มต้นสำหรับคำสั่ง find ดังนั้นมันจะยังคงทำสิ่งเดียวกันถ้าคุณไม่ใช้มัน ดังนั้น find -name file-sample.rtf จะให้ผลลัพธ์แบบเดียวกัน

    Linux FIND Command พร้อมตัวอย่าง

    Linux ค้นหาในไดเร็กทอรีอื่น

    คุณสามารถค้นหาในไดเร็กทอรีอื่นที่ไม่ใช่ไดเร็กทอรีที่คุณอยู่ เพียงแค่ใส่พาธไปยังไดเร็กทอรีหลังจาก FIND หากคุณอยู่ที่รูทและรู้ว่าไฟล์นั้นอยู่ที่ไหนสักแห่งใน home/user ไดเรกทอรีที่คุณจะใช้:

    ค้นหา home/user -name file-sample.rtf

    Linux FIND Command พร้อมตัวอย่าง

    ยังคงเป็นการค้นหาแบบเรียกซ้ำ ดังนั้นจะผ่านทุกไดเร็กทอรีภายใต้ ผู้ใช้ .

    Linux FIND ค้นหาหลายไดเรกทอรี

    หากคุณต้องการค้นหาในไดเร็กทอรีหลายๆ ไดเร็กทอรีในคราวเดียว ให้ระบุไดเร็กทอรีในคำสั่งโดยคั่นด้วยการเว้นวรรค

    ค้นหา /lib /var /bin -name file-sample.rtf

    Linux FIND Command พร้อมตัวอย่าง

    Linux FIND ไม่มีการเรียกซ้ำหรือจำกัดการเรียกซ้ำ

    หากคุณใช้คำสั่ง FIND ด้านบนที่ระดับรูท คำสั่งจะตรวจสอบทุกไดเร็กทอรีในระบบ ดังนั้นหากคุณต้องการยึดติดกับไดเร็กทอรีปัจจุบัน ให้ใช้ -maxdepth ตัวเลือก. ตัวเลขหลัง -maxdepth บอก Find ว่าต้องลึกแค่ไหนก่อนหยุด

    ใช้ -maxdepth 1 หมายถึงไดเร็กทอรีนี้เท่านั้น

    find -name file-sample.rtf -maxdepth 1

    Linux FIND Command พร้อมตัวอย่าง

    ใช้ -maxdepth 2 หรือมากกว่านั้นหมายถึงการก้าวไปสู่ระดับที่ลึกกว่านั้นหลายระดับ

    find -maxdepth 5 -name file-sample.rtf

    Linux FIND Command พร้อมตัวอย่าง

    Linux ค้นหาตัวอย่างสัญลักษณ์แทน

    คำสั่ง FIND ใช้เครื่องหมายดอกจัน (* ) เป็นสัญลักษณ์แทน ใช้สำหรับส่วนใดส่วนหนึ่งของชื่อที่คุณไม่แน่ใจ สามารถใช้ได้มากกว่าหนึ่งครั้งในชื่อ หากไม่มีประเภทไฟล์เป็นส่วนหนึ่งของชื่อไฟล์ ผลลัพธ์จะรวมไดเร็กทอรีที่ตรงกันด้วย

    ค้นหาไฟล์ชื่อบ้าน/ชื่อผู้ใช้*ตัวอย่าง*

    Linux FIND Command พร้อมตัวอย่าง

    Linux FIND ตามตัวอย่างประเภท

    หากต้องการค้นหาเฉพาะไฟล์หรือไดเร็กทอรี ให้ใช้อ็อพชัน -type และตัวอธิบายที่เหมาะสม มีบางส่วน แต่ไฟล์และไดเร็กทอรีเป็นไฟล์ทั่วไป:

    f – ไฟล์

    d – ไดเรกทอรี

    b – บล็อคอุปกรณ์

    ค – อุปกรณ์ตัวละคร

    l – ลิงค์สัญลักษณ์

    s – ซ็อกเก็ต

    ค้นหา home/user -name file*sample* -type d

    Linux FIND Command พร้อมตัวอย่าง

    Linux FIND ตัวอย่างที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

    ต่างจาก Windows ตรงที่ Linux สนใจว่าตัวอักษรเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก ดังนั้น หากคุณต้องการให้ค้นหาทั้ง File-Sample.rtf และ file-sample.rtf ให้ใช้ -iname ตัวเลือก

    ค้นหาบ้าน/ผู้ใช้ -iname File-Sample.rtf

    Linux FIND Command พร้อมตัวอย่าง

    Linux ค้นหาตัวอย่างไฟล์หลายไฟล์

    สมมติว่าคุณต้องการค้นหาไฟล์เวอร์ชัน .rtf และ .html ที่สามารถทำได้ในคำสั่งเดียวโดยใช้ -o (หรือ) ตัวดำเนินการ ในบาง distros คุณอาจต้องใส่ชื่อในวงเล็บ เช่น ( -name file-sample.rtf -o -name file-sample.html ) .

    ค้นหา home/user -name file-sample.rtf -o -name file-sample.html

    Linux FIND Command พร้อมตัวอย่าง

    Linux ค้นหาไฟล์ที่ไม่ตรงกับชื่อ

    บางทีคุณอาจรู้ว่ามีไฟล์ในเวอร์ชัน .html แต่ไม่ใช่ถ้ามีอย่างอื่น คุณสามารถกรองเวอร์ชัน .html ออกจากการค้นหาได้โดยใช้ -not ตัวเลือก

    ค้นหา home/user -name file-sample* -not -name *.html

    Linux FIND Command พร้อมตัวอย่าง

    Linux FIND โดยไม่มีผลลัพธ์ข้อผิดพลาด

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

    find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “การอนุญาตถูกปฏิเสธ”

    Linux FIND Command พร้อมตัวอย่าง

    มาพังกัน 2>&1 .

    2 – หมายถึง stderr ซึ่งสั้นสำหรับเอาต์พุตข้อผิดพลาดมาตรฐาน

    1 – หมายถึง stdout ซึ่งสั้นสำหรับเอาต์พุตมาตรฐาน

    > – หมายถึงการเปลี่ยนเส้นทางเอาท์พุตทางซ้ายของมันไปยังทางขวาของมัน

    & – หมายถึง การรวมเข้าด้วยกัน

    ดังนั้น 2>&1 หมายถึงนำข้อผิดพลาดมาตรฐานและเปลี่ยนเส้นทาง จากนั้นรวมเข้ากับเอาต์พุตมาตรฐานไว้ในเอาต์พุตเดียว

    ทีนี้มาดูที่ | grep -v “การอนุญาตถูกปฏิเสธ” .

    | (เรียกว่าไพพ์) – บอกให้ลินุกซ์ป้อนผลลัพธ์ของสิ่งที่อยู่ทางซ้ายของมันไปยังสิ่งที่อยู่ทางขวาของมัน กำลังป้อนคำสั่ง grep

    grep – เป็นยูทิลิตี้ค้นหาข้อความ

    -v - บอกให้ grep ค้นหาอะไรก็ได้ที่ไม่ตรงกับข้อความทางด้านซ้ายของ -v ในกรณีนี้ มันบอกให้ grep ค้นหาเฉพาะสิ่งใดก็ตามที่ไม่มีข้อความหรือสตริง "การอนุญาตถูกปฏิเสธ" ดังนั้น grep จะแสดงเฉพาะผลลัพธ์ที่คุณต้องการและข้อผิดพลาดที่ไม่ตรงกับ "การอนุญาตถูกปฏิเสธ"

    Linux FIND โดยตัวอย่างการอนุญาต

    ในการใช้งานให้ดี คุณต้องเรียนรู้สิทธิ์ของ Linux

    Linux FIND Command พร้อมตัวอย่าง

    ไฟล์ตัวอย่างทั้งหมดมีสิทธิ์ 664 ยกเว้นไฟล์ที่มีสิทธิ์ 775 ใช้ -perm ตัวเลือกเพื่อค้นหา

    ค้นหาเอกสาร/ -name file-sample* -type f -perm 775

    Linux FIND Command พร้อมตัวอย่าง

    Linux FIND โดยตัวอย่างขนาด

    การค้นหาไฟล์ตามขนาดนั้นสะดวกสำหรับการเติมไฟล์ขนาดใหญ่เหล่านั้นลงในฮาร์ดไดรฟ์ของคุณ ใช้ตัวเลือก -ขนาด ขนาดที่ต้องการ และส่วนต่อท้ายอย่างใดอย่างหนึ่งต่อไปนี้ หากไม่มีการใช้คำต่อท้าย -size ค่าเริ่มต้นเป็น b . หากต้องการค้นหาไฟล์ที่เท่ากันและใหญ่กว่าขนาดที่กำหนด ให้ใส่เครื่องหมายบวก (+) ข้างหน้าขนาด

    M – เมกะไบต์

    G – กิกะไบต์

    k – กิโลไบต์

    b – บล็อก (512 ไบต์ – ค่าเริ่มต้น)

    c – ไบต์

    w – คำ (สองไบต์รวมกัน)

    ค้นหา -ขนาด +500k

    Linux FIND Command พร้อมตัวอย่าง

    Linux ค้นหาโดยเจ้าของ

    มีสองวิธีในการค้นหาไฟล์โดยเจ้าของ หนึ่งใช้ชื่อผู้ใช้ของเจ้าของ และอีกอันหนึ่งคือโดยกลุ่มของผู้ใช้ หากต้องการค้นหาด้วยชื่อผู้ใช้ ให้ใช้ -user ตัวเลือกตามด้วยชื่อผู้ใช้ หากต้องการค้นหาตามกลุ่มผู้ใช้ ให้ใช้ -group ตามด้วยชื่อกลุ่ม..

    ค้นหา -user groupname หรือ ค้นหา -user username

    Linux FIND Command พร้อมตัวอย่าง Linux FIND Command พร้อมตัวอย่าง

    Linux FIND Files โดย Last Modified Example

    หากต้องการค้นหาไฟล์ที่แก้ไขหรือแก้ไขในจำนวน X วันที่ผ่านมา ให้ใช้ -mtime ตามด้วยตัวเลข ใส่เครื่องหมายลบ ( ) ข้างหน้าเลขจะพบอะไรเปลี่ยนแปลงภายในไม่กี่วันก่อนนี้ เครื่องหมายบวก (+ ) หมายถึง ภายในระยะเวลาหลายวันก่อนนี้

    find -name “file-sample*” -mtime +5 (มากกว่า 5 วันที่ผ่านมา)

    find -name “file-sample*” -mtime -5 (น้อยกว่า 5 วันที่ผ่านมา)

    Linux FIND Command พร้อมตัวอย่าง

    หากต้องการค้นหาโดยแก้ไขล่าสุดในหน่วยนาที ให้ใช้ตัวเลือก -mmin ตามด้วยจำนวนนาที ใช้เครื่องหมาย + และ – เหมือนด้านบน

    find -name “file-sample*” -mmin -5

    find -name “file-sample*” -mmin +5

    Linux FIND Command พร้อมตัวอย่าง

    Linux FIND Files โดยตัวอย่าง TIME ที่เข้าถึงล่าสุด

    ตัวเลือกที่ใช้ค้นหาไฟล์ตามเวลาที่เปิดล่าสุดคือ -atime สำหรับวันและ -อามิน เป็นเวลาหลายนาที ตามด้วยจำนวนวันหรือนาทีเพื่อย้อนกลับและใช้เครื่องหมาย + และ – มากกว่าหรือน้อยกว่า

    ค้นหา -name “ไฟล์-ตัวอย่าง*” -atime -5

    Linux FIND Command พร้อมตัวอย่าง

    find -name “file-sample* -amin -5

    Linux FIND Command พร้อมตัวอย่าง

    รวม FIND เข้ากับคำสั่ง Linux อื่นๆ

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