Tin tức và phân tích của tất cả các thiết bị di động

Cách sử dụng lệnh fd trong linux

Trên Linux, fd là một giải pháp thay thế dễ dàng hơn cho lệnh find. Nó có một cú pháp đơn giản hóa, sử dụng các giá trị mặc định hợp lý và có ý nghĩa chung được tích hợp sẵn. Hãy nhìn vào điều này.

fd vs find: sự khác biệt là gì?

Lệnh fd không nhằm mục đích thay thế lệnh find truyền thống đã có trên Linux, nó luôn luôn như vậy. Thay vào đó, fd cố gắng bao gồm hầu hết các cách sử dụng phổ biến nhất của find theo cách đơn giản hơn – và thường nhanh hơn gấp tám hoặc chín lần so với find. Bạn có thể xem một số điểm chuẩn của anh ấy trên trang kho lưu trữ GitHub của dự án.

fd có đầu ra màu, tương tự như một số chế độ ls. Nó là đệ quy nhưng không tìm kiếm các thư mục ẩn theo mặc định. Nó biết về Git và cũng sẽ tự động bỏ qua mọi mẫu trong tệp “.gitignore”.

fd không phân biệt chữ hoa chữ thường theo mặc định. Tuy nhiên, nếu mẫu tìm kiếm chứa một chữ cái viết hoa, fd sẽ hoạt động ở chế độ phân biệt chữ hoa chữ thường. Tất nhiên, bạn có thể thay đổi các giá trị mặc định, nhưng trong nhiều trường hợp, chúng có lợi cho bạn.

cài đặt fd

Kể từ Ubuntu 19.04 (Disco Dingo), bạn có thể cài đặt fd trực tiếp bằng cách gọi gói được quản lý chính thức với apt-get. Nếu bạn đang sử dụng phiên bản Ubuntu cũ hơn, hãy xem hướng dẫn cài đặt trên trang trung tâm Git.

Nhập các thông tin sau:

sudo apt-get install fd-find

Trong Ubuntu, lệnh là fdfind để tránh xung đột tên với một công cụ hiện có khác. Nếu bạn muốn nó là fd, bạn có thể đặt bí danh:

alias fd=fdfind

bí danh fd=fdfind trong cửa sổ đầu cuối.

Để bí danh luôn tồn tại và khả dụng sau khi khởi động lại, hãy đặt bí danh vào tệp “.bashrc” hoặc “.bash_aliases”.

Để cài đặt fd trên Fedora, hãy nhập lệnh này:

sudo dfn install fd-find

Sudo dnf install fd-find trong cửa sổ đầu cuối.

Trong Manjaro, nhập:

sudo pacman -Syu fd

sudo pacman -Syu fd trong cửa sổ đầu cuối.

fd so với fdfind

Để tránh nhầm lẫn, chúng tôi để lệnh có tên mặc định là fdfind trên máy thử nghiệm Ubuntu của mình. fd và fdfind chính xác là lệnh giống như bạn sẽ thấy trong ví dụ bên dưới (nếu bạn yêu cầu fdfind hiển thị phiên bản của nó, nó sẽ tự gọi mình là “fd”):

fdfind --version

fdfind --version trong cửa sổ đầu cuối.

Chúng tôi sẽ gọi lệnh này là “feed”, nhưng chúng tôi sẽ sử dụng lệnh “fdfind” của Ubuntu trong các ví dụ. Trên các bản phân phối Linux khác, bạn có thể gõ “fd” thay vì “fdfind” để tiết kiệm một vài lần nhấn phím.

Tìm kiếm đơn giản với fd

Nếu bạn sử dụng fd mà không có tùy chọn dòng lệnh, nó sẽ hoạt động hơi giống ls, ngoại trừ nó liệt kê các tệp trong thư mục con theo mặc định.

Nhập các thông tin sau:

fdfind

fdfind trong một cửa sổ đầu cuối.

Đầu ra được hiển thị bằng các màu khác nhau cho các loại tệp và thư mục khác nhau.

Thoát fdfind trong cửa sổ đầu cuối.

Để xem các tệp thuộc một loại cụ thể, hãy sử dụng tùy chọn -e (phần mở rộng). Lưu ý rằng bạn không cần đặt dấu chấm (.) trước tiện ích mở rộng và cũng không phân biệt chữ hoa chữ thường.

Ví dụ, bạn có thể gõ:

fdfind -e png

fdfind -e png trong cửa sổ đầu cuối.

Bây giờ các tệp duy nhất được liệt kê là tệp hình ảnh PNG.

đầu ra fdfind -e png trong một cửa sổ đầu cuối.

Để tìm kiếm một tệp, hãy nhập tên của nó trên dòng lệnh, ví dụ:

fdfind index.page

fdfind index.page trong cửa sổ đầu cuối.

Tệp đã được tìm thấy và nằm trong thư mục con. Chúng tôi không cần yêu cầu fd tìm kiếm theo cách đệ quy.

Để bắt đầu tìm kiếm trong một thư mục cụ thể, hãy bao gồm đường dẫn tệp trên dòng lệnh. Lệnh sau sẽ bắt đầu tìm kiếm trong thư mục “/etc” và tìm các tệp có chứa từ “passwd” trong tên tệp:

fdfind passwd /etc

fdfind passwd /etc trong cửa sổ đầu cuối.

Ở đây chúng tôi đang tìm kiếm tất cả các tệp mã nguồn C có chứa “tọa độ” trong tên tệp:

fdfind -e c coord

fdfind -ec coordinator trong cửa sổ đầu cuối.

Đã tìm thấy hai tệp phù hợp.

fd và Git

Git là một hệ thống kiểm soát phiên bản mã nguồn cực kỳ phổ biến. Nếu bạn sử dụng Git trên máy của mình, bạn có thể sử dụng các tệp “.gitignore” để báo cho Git biết tệp nào sẽ xử lý và tệp nào có thể bỏ qua. Theo mặc định, fd tôn trọng cài đặt trong tệp “.gitignore” của bạn.

Trong thư mục này, chúng tôi có kho lưu trữ Git và tệp “.gitignore”. Chúng tôi nhập:

ls -adl .git*

ls -adl .git * trong cửa sổ đầu cuối.

Hãy yêu cầu fd liệt kê tất cả các tệp có chứa “tọa độ” trong tên tệp. Sau đó, chúng tôi sẽ lặp lại tìm kiếm và sử dụng tùy chọn -I (không bỏ qua). Điều này yêu cầu fd bỏ qua các cài đặt trong tệp “.gitignore” và báo cáo bất kỳ tệp phù hợp nào.

Để làm tất cả điều này, chúng tôi nhập:

fdfind coord
fdfind coord -I

điều phối viên fdfind trong cửa sổ đầu cuối.

Hai tệp bổ sung trong tập kết quả thứ hai là các tệp đối tượng. Chúng được tạo khi chương trình tệp được biên dịch. Sau đó, chúng được trình liên kết sử dụng để tạo phiên bản thực thi cuối cùng của chương trình.

Các tệp đối tượng thường bị các chương trình kiểm soát phiên bản mã nguồn bỏ qua. Chúng được tạo lại mỗi khi bạn biên dịch chương trình của mình, vì vậy bạn không cần giữ một bản sao của chúng. Có một mục trong tệp “.gitignore” hướng dẫn Git bỏ qua các tệp đối tượng và theo mặc định, fd cũng bỏ qua chúng.

Tùy chọn -I (không bỏ qua) buộc fd trả về bất cứ thứ gì nó tìm thấy, thay vì theo sau tệp “.gitginore”.

Loại tệp và phân biệt chữ hoa chữ thường

Bạn có thể yêu cầu fd tìm kiếm các thư mục, tệp (bao gồm tệp thực thi và tệp trống) và liên kết tượng trưng. Bạn có thể thực hiện việc này với tùy chọn -t (loại), theo sau là một trong các chữ cái bên dưới:

f: tập tin.
d: Danh mục.
l: liên kết tượng trưng.
x: có thể thực thi được.
e: tập tin rỗng.

Ví dụ sau tìm kiếm một thư mục có tên là hình ảnh:

fdfind -td images

fdfind -td hình ảnh trong một cửa sổ đầu cuối.

Đã tìm thấy kết quả phù hợp, một thư mục con thấp hơn thư mục hiện tại.

Hãy xem cách phân biệt chữ hoa chữ thường hoạt động trong các mẫu tìm kiếm. Trước tiên, chúng tôi nhập lệnh sau để tìm kiếm các tệp có chứa “geo” trong tên tệp của chúng và sau đó là các tệp có chứa “geo” trong tên tệp của chúng:

fdfind -tf geo
fdfind -tf Geo

fdfind -tf geo trong cửa sổ đầu cuối.

Trong lệnh đầu tiên, chúng tôi đã sử dụng mẫu tìm kiếm chữ thường, làm cho fd hoạt động không phân biệt chữ hoa chữ thường. Điều này có nghĩa là cả “geo” và “geo” đều là kết quả khớp hợp lệ.

Lệnh thứ hai của chúng tôi chứa một chữ in hoa, làm cho fd phân biệt chữ hoa chữ thường. Điều này có nghĩa là chỉ “Geo” là kết quả khớp hợp lệ.

Thực thi lệnh

Lệnh fd cho phép bạn chạy một lệnh khác và thực thi nó trên từng tệp mà nó tìm thấy.

Giả sử chúng ta biết có một tệp zip ở đâu đó trong cây thư mục chứa mã nguồn. Chúng ta có thể tìm kiếm nó bằng lệnh tìm kiếm các tệp có phần mở rộng ZIP:

fdfinf -e zip

fdfinf -e zip trong cửa sổ đầu cuối.

Với tùy chọn -x (exec), bạn có thể chuyển từng tệp được tìm thấy sang một lệnh khác để xử lý. Ví dụ: chúng ta có thể nhập lệnh sau để gọi công cụ giải nén tệp để giải nén tệp ZIP của mình (“{}” là trình giữ chỗ đại diện cho tệp được tìm thấy):

fdfind -e zip -x unzip {}

Thao tác này sẽ giải nén tệp trong thư mục làm việc hiện tại. Nếu chúng tôi muốn nó được giải nén trong thư mục chứa tệp ZIP, chúng tôi có thể sử dụng một trong các trình giữ chỗ sau:

{}: Đường dẫn đầy đủ đến tệp và tên của tệp được tìm thấy.
{/}: Tên của tệp tìm thấy.
{//}: thư mục chứa tệp tìm được.
{/.}: Tên của tệp được tìm thấy, không có phần mở rộng.

Để tệp ZIP của chúng ta được tìm thấy và giải nén trong thư mục chứa nó, chúng ta có thể sử dụng tùy chọn giải nén -d (thư mục) và chuyển trình giữ chỗ của thư mục mẹ ({//}):

fdfind -e zip -x unzip {} -d {//}

fdfind -e zip -x giải nén {} -d {//} trong cửa sổ terminal.

Tệp ZIP sau đó được định vị và giải nén trong thư mục mẹ.

Thoát fdfind -e zip -x unzip {} -d {//} trong cửa sổ terminal.

Nơi của bạn để tìm?

Bởi vì nó bao gồm những cách sử dụng phổ biến nhất với sự đơn giản như vậy, nên fd có thể dễ dàng trở thành một lệnh “tìm”. Bất cứ khi nào bạn cần các tính năng nâng cao hơn, bạn luôn có thể quay lại tìm kiếm kỳ cựu dày dạn kinh nghiệm này.