Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách Dùng fd Để Tìm Tệp Nhanh Trên Linux Và macOS

fd là phương án thay thế đơn giản hơn cho lệnh find. Nó dùng cú pháp rút gọn và cấu trúc lệnh viết tắt để giữ lệnh bạn gõ ngắn gọn và súc tích. Tuy nhiên, sự thiếu chi tiết làm cho fd dễ gõ nhưng khó hiểu hơn. fd cũng chạy khớp mẫu (pattern-matching) nhanh hơn lệnh find mặc định. Học cách dùng fd trên Linux và macOS.

Cài Đặt fd Trên Linux

fd không đi kèm mặc định trên nhiều hệ thống. Bạn cần dùng trình quản lý gói ưa thích để tải và cài ứng dụng, rồi chạy từ Terminal.

Ubuntu

Nó sẽ có sẵn trên Ubuntu Disco Dingo 19.04, nhưng nếu không bạn cần tải và cài. Cho Ubuntu và các bản phân phối dựa trên Debian, chạy lệnh sau để tải và cài:

wget https://github.com/sharkdp/fd/releases/download/v7.3.0/fd-musl_7.3.0_amd64.deb
sudo dpkg -i fd-musl_7.3.0_amd64.deb

Nếu cần bản 32-bit hoặc build khác, tải từ trang GitHub releases của fd.

Debian

Trên Debian Buster hoặc mới hơn, bạn có thể cài fd từ kho chính thức do Debian duy trì.

sudo apt-get install fd-find

Fedora

Từ Fedora 28, fd có thể cài từ gói chính thức.

dnf install fd-find

Arch Linux

Tương tự, user Arch lấy fd từ kho chính thức:

pacman -S fd

Gentoo Linux

User Gentoo dùng lệnh sau tải ebuild fd:

emerge -av fd

macOS

Nếu bạn chạy macOS, cài Homebrew, rồi dùng lệnh dưới cài fd:

brew install fd

Dùng fd Trên Linux

Cách Dùng fd Để Tìm Tệp Nhanh Trên Linux Và macOS

Lệnh fd có cấu trúc cơ bản fd pattern so với find . -iname 'pattern'.

Để tìm tệp theo tên, dùng lệnh:

fd filename

Điều này tìm trong thư mục làm việc mặc định, bao gồm thư mục con. Để tìm trong thư mục cụ thể, chỉ định nó sau từ khóa tìm:

fd filename /path/to/search

Thực Thi Lệnh Trên Kết Quả

Giống find, fd có chức năng truyền tệp tìm thấy cho lệnh khác thực thi. Nơi find dùng find . -iname pattern -exec command, fd dùng cờ -x:

fd -e zip -x unzip

Lệnh này gửi tất cả tệp zip trong thư mục đến lệnh unzip. Bạn dùng các ký hiệu sau trong "cụm từ" lệnh thực thi để truyền thông tin cách cụ thể.

  • {}: Placeholder (chỗ giữ) thay bằng đường dẫn kết quả tìm (files/images/portrait.jpg).
  • {/}: Placeholder thay bằng tên tệp kết quả, được UNIX gọi là basename (portrait.jpg).
  • {//}: Placeholder thay bằng thư mục cha của mục tìm thấy (files/images).
  • {.}: Placeholder thay bằng đường dẫn đến tên tệp, không phần mở rộng (files/images/portrait).
  • {/.}: Placeholder thay bằng basename mục tìm thấy, không phần mở rộng (portrait).

Xem ví dụ sau, dùng hai placeholder trên:

fd -e flac -x ffmpeg -i {} -c:a libopus {.}.opus

Các Cờ fd Hữu Ích Khác

  • -e: tìm phần mở rộng tệp chỉ, không dấu chấm phân tách.
  • -E pattern: loại trừ kết quả khớp mẫu sau.
  • --changed-newer-than date|duration: lọc kết quả dựa trên thời gian sửa đổi. Chỉ hiển thị tệp có ngày sửa sau ngày chỉ định. Thời gian có thể cho duration đếm ngược từ hiện tại (10h, 1d, 35min) hoặc đặt thời gian cụ thể ("YYYY-MM-DD HH:MM:SS").
  • --changed-older-than date|duration: Giống --changed-newer nhưng hiển thị tệp sửa trước ngày/độ dài chỉ định, không phải sau.
  • -t: chỉ hiển thị tệp loại chỉ định (-tf tệp, -td thư mục, -tx thực thi, -tl symlink, -te tệp rỗng).
  • -p: tìm trong toàn bộ đường dẫn, không chỉ tên tệp.
  • -s: ép case-sensitive (phân biệt chữ hoa thường). Mặc định fd bỏ qua case trừ khi chữ hoa gõ trong mẫu.
  • -H: hiển thị tệp và thư mục ẩn trong kết quả.
  • -L: theo dõi link vào thư mục symlinked.

fd là phương án thay thế tốt cho lệnh find. Nếu trải nghiệm của bạn là lệnh "find" khó dùng, bạn có thể may mắn hơn dùng fd. Thử và cho chúng tôi biết có hữu ích không.