ค้นหาเว็บไซต์

fd - ทางเลือกที่ง่ายและรวดเร็วในการค้นหาคำสั่ง


ผู้ใช้ Linux ส่วนใหญ่คุ้นเคยกับคำสั่ง find เป็นอย่างดี และในหลายกรณีก็สามารถใช้ได้ วันนี้เราจะทบทวนทางเลือกอื่นในการค้นหาคำสั่งที่เรียกว่า fd

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

คุณสมบัติ fd

คุณลักษณะเด่นบางประการของ fd:

  • ไวยากรณ์ที่ใช้งานง่าย – fd *pattern* แทน find -iname *pattern*
  • เอาต์พุตที่มีสีสันจะคล้ายกับคำสั่ง ls
  • ประสิทธิภาพที่รวดเร็ว เกณฑ์มาตรฐานของนักพัฒนามีอยู่ที่นี่
  • การค้นหาอัจฉริยะโดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยค่าเริ่มต้น และสลับเป็นแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หากรูปแบบมีสัญลักษณ์ตัวพิมพ์ใหญ่
  • ไม่ค้นหาไฟล์และไดเร็กทอรีที่ซ่อนอยู่ตามค่าเริ่มต้น
  • ไม่ดู .gitignore ตามค่าเริ่มต้น
  • การรับรู้ Unicode

วิธีการติดตั้ง fd ใน Linux

เราจะดูวิธีการติดตั้ง fd ใน Linux รุ่นต่างๆ โดยใช้ตัวจัดการแพ็คเกจเริ่มต้นตามที่แสดง

sudo apt install fd-find    [On Debian, Ubuntu and Mint]
sudo yum install fd-find    [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd  [On Gentoo Linux]
sudo pacman -S fd           [On Arch Linux]
sudo zypper install fd      [On OpenSUSE]  
sudo apk add fd             [On Alpine Linux]    

วิธีใช้ fd ใน Linux

เช่นเดียวกับคำสั่ง find fd มีกรณีการใช้งานมากมาย แต่มาเริ่มต้นด้วยการตรวจสอบตัวเลือกที่มีอยู่:

fd -h
OR
fd --help

เรามาดูตัวอย่างกัน คุณสามารถเรียกใช้ fd โดยไม่มีอาร์กิวเมนต์ใดๆ ผลลัพธ์จะคล้ายกับคำสั่ง ls -R มาก

fd

ในตัวอย่าง fd ถัดไป ฉันจะใช้การติดตั้ง WordPress เริ่มต้นที่อยู่ใน /var/www/html/ เพื่อค้นหาไฟล์และโฟลเดอร์ต่างๆ

ในตัวอย่างด้านล่าง ฉันพิมพ์เฉพาะผลลัพธ์ 10 รายการแรกสำหรับเอาต์พุตที่สั้นกว่าโดยใช้การเปลี่ยนเส้นทางไปป์ด้วยคำสั่ง head

fd | head

ค้นหาไฟล์ JPG ทั้งหมดใน Linux

สมมติว่าเราต้องการค้นหาไฟล์ jpg ทั้งหมด เราสามารถใช้แฟล็ก “-e ” เพื่อกรองตามนามสกุลไฟล์:

fd -e jpg

หากคุณต้องการระบุไดเร็กทอรีการค้นหา คุณเพียงแค่ต้องระบุเป็นอาร์กิวเมนต์:

fd <pattery> <directory>

ค้นหาสตริงในไฟล์ PHP ทั้งหมดใน Linux

“-e ” ธงสามารถใช้ร่วมกับรูปแบบดังแสดง:

fd -e php index

คำสั่งด้านบนจะค้นหาไฟล์ที่มีนามสกุล .php และมีสตริง “index ” อยู่ในนั้น:

หากคุณต้องการยกเว้นผลลัพธ์บางส่วน คุณสามารถใช้แฟล็ก “-E ” ดังที่แสดง:

fd -e php index -E wp-content

คำสั่งนี้จะค้นหาไฟล์ทั้งหมดที่มีนามสกุล php ซึ่งมีสตริง “index ” และจะไม่รวมผลลัพธ์จากไดเร็กทอรี “wp-content

ค้นหาไฟล์ JPG ทั้งหมดและแก้ไขการอนุญาต

เช่นเดียวกับ ค้นหา คุณสามารถใช้อาร์กิวเมนต์ -x หรือ --exec เพื่อดำเนินการคำสั่งแบบขนานกับผลการค้นหาได้

นี่คือตัวอย่างที่เราจะใช้ chmod เพื่อเปลี่ยนการอนุญาตของไฟล์ภาพ

fd -e jpg -x chmod 644 {}

ข้างต้นจะค้นหาไฟล์ทั้งหมดที่มีนามสกุล jpg และจะเรียกใช้ chmod 644

ต่อไปนี้เป็นคำอธิบายที่เป็นประโยชน์และการใช้วงเล็บเหลี่ยม:

  • {} – ตัวยึดที่จะเปลี่ยนตามเส้นทางของผลการค้นหา (wp-content/uploads/01.jpg)
  • {.} – คล้ายกับ {} แต่ไม่มีการใช้นามสกุลไฟล์ (wp-content/uploads/01)
  • {/}: ตัวยึดตำแหน่งที่จะถูกแทนที่ด้วยชื่อฐานของผลการค้นหา (01.jpg)
  • {//}: ไดเรกทอรีหลักของเส้นทางที่ค้นพบ (wp-content/uploads)
  • {/.}: เฉพาะชื่อฐาน โดยไม่มีนามสกุล (01)
บทสรุป

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