Lệnh "Fd" - Thay thế tốt nhất cho lệnh 'Find' Linux

Đa số người dùng Linux quen thuộc với lệnh find và các trường hợp sử dụng của nó. Hôm nay chúng ta sẽ xem xét một lựa chọn thay thế cho lệnh find, gọi là fd.

Lệnh fd là một công cụ đơn giản, nhanh chóng và dễ sử dụng, được thiết kế để hoạt động nhanh hơn so với find. Nó không nhằm thay thế hoàn toàn lệnh find mà chỉ đơn giản là mang đến cho bạn một lựa chọn dễ sử dụng hơn và hoạt động nhanh hơn một chút.

Các tính năng của fd

Một số tính năng đáng chú ý của fd:

  • Cú pháp sử dụng dễ dàng - fd *mẫu* thay vì find -iname *mẫu*.
  • Đầu ra có màu sắc tương tự như lệnh ls.
  • Hiệu suất nhanh. Có sẵn các bài đo hiệu suất của nhà phát triển tại đây.
  • Tìm kiếm thông minh mặc định không phân biệt chữ hoa, chỉ chuyển sang phân biệt chữ hoa nếu mẫu chứa ký tự in hoa.
  • Không tìm trong các tập tin và thư mục ẩn theo mặc định.
  • Không tìm trong file .gitignore theo mặc định.
  • Hỗ trợ chuẩn Unicode.

Cách cài đặt fd trên Linux

Chúng ta sẽ xem cách cài đặt fd trên các phiên bản Linux khác nhau bằng cách sử dụng trình quản lý gói mặc định như được hiển thị dưới đây.

$ 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]    

Cách sử dụng fd trên Linux

Tương tự như lệnh find, fd có nhiều trường hợp sử dụng, nhưng hãy bắt đầu bằng cách kiểm tra các tùy chọn có sẵn:

# fd -h
OR
# fd --help
fd Command Usage

Hãy xem một số ví dụ. Bạn có thể chạy fd mà không có bất kỳ đối số nào, đầu ra sẽ rất giống với lệnh ls -R.

# fd

Trong các ví dụ fd tiếp theo, tôi sẽ sử dụng một cài đặt WordPress mặc định được đặt tại /var/www/html/ để tìm kiếm các tệp và thư mục khác nhau.

Trong ví dụ dưới đây, tôi chỉ in ra 10 kết quả đầu tiên để thu gọn đầu ra bằng cách sử dụng chuyển hướng pipe với lệnh head.

# fd | head
fd Command Example

Tìm kiếm tất cả các tệp JPG trên Linux

Hãy nói chúng ta muốn tìm kiếm tất cả các tệp jpg. Chúng ta có thể sử dụng cờ -e để lọc theo phần mở rộng tệp:

# fd -e jpg
fd - Find JPG Files

Nếu bạn muốn chỉ định một thư mục tìm kiếm, bạn chỉ cần đưa nó làm đối số:

# fd  
fd - Find Files in Directory

Tìm kiếm chuỗi trong tất cả các tệp PHP trên Linux

Cờ -e có thể được sử dụng kết hợp với một mẫu như dưới đây:

# fd -e php index

Lệnh trên sẽ tìm kiếm các tệp có phần mở rộng .php và chứa chuỗi "index" trong chúng:

fd - Find String in Files

Nếu bạn muốn loại trừ một số kết quả, bạn có thể sử dụng cờ -E như dưới đây:

# fd -e php index -E wp-content

Lệnh này sẽ tìm kiếm tất cả các tệp có phần mở rộng php, chứa chuỗi "index" và sẽ loại trừ kết quả từ thư mục "wp-content".

fd - Exclude Files While Searching String in Files

Tìm tất cả các tệp JPG và thay đổi quyền truy cập

Tương tự như find, bạn có thể sử dụng các đối số -x hoặc --exec để thực hiện thực thi lệnh song song với kết quả tìm kiếm.

Dưới đây là một ví dụ khi chúng ta sử dụng chmod để thay đổi quyền truy cập của các tệp hình ảnh

# fd -e jpg -x chmod 644 {}

Lệnh trên sẽ tìm kiếm tất cả các tệp có phần mở rộng jpg và sẽ chạy chmod 644 <đường-dẫn-đến-tệp>.

Dưới đây là một số giải thích và cách sử dụng các dấu ngoặc:

  • { } - Một trình giữ chỗ sẽ được thay thế bằng đường dẫn của kết quả tìm kiếm (wp-content/uploads/01.jpg).
  • {. } - Tương tự như { } nhưng không sử dụng phần mở rộng tệp (wp-content/uploads/01).
  • {/ } - Một trình giữ chỗ sẽ được thay thế bằng tên tệp của kết quả tìm kiếm (01.jpg).
  • {// } - Thư mục cha của đường dẫn đã tìm thấy (wp-content/uploads).
  • {/. } - Chỉ tên tệp, không bao gồm phần mở rộng (01).
Kết luận

Đây là một bài đánh giá ngắn về lệnh fd, mà một số người dùng có thể thấy dễ sử dụng hơn và nhanh hơn thay cho lệnh find. Như đã đề cập trước đây trong bài viết này, fd không nhằm thay thế hoàn toàn lệnh find, mà chỉ mang đến cho bạn một cách sử dụng đơn giản hơn, tìm kiếm dễ dàng hơn và hiệu suất tốt hơn. Fd không chiếm nhiều không gian và là một công cụ tốt để có trong tay.