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 ไม่ใช้พื้นที่มากนักและเป็นเครื่องมือที่ดีที่ควรมีติดตัวคุณ