Lệnh find trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh find mạnh mẽ của Linux để tìm kiếm các file và thư mục dựa trên nhiều tiêu chí khác nhau, chẳng hạn như tên, loại file, kích thước, v.v. Lab bao gồm cách sử dụng cơ bản của lệnh find, cũng như các kỹ thuật nâng cao hơn để kết hợp nó với các lệnh khác cho các tìm kiếm phức tạp hơn. Bạn sẽ bắt đầu bằng cách hiểu cú pháp cơ bản và một số ví dụ thực tế về lệnh find, sau đó khám phá cách tìm kiếm các file theo tên và loại file. Cuối cùng, bạn sẽ học cách kết hợp lệnh find với các lệnh khác để thực hiện các tìm kiếm nâng cao.

Tìm hiểu các kiến thức cơ bản của lệnh find

Trong bước này, bạn sẽ học cách sử dụng cơ bản lệnh find trong Linux. Lệnh find là một công cụ mạnh mẽ cho phép bạn tìm kiếm các file và thư mục dựa trên nhiều tiêu chí khác nhau, chẳng hạn như tên, loại file, kích thước, v.v.

Hãy bắt đầu bằng cách hiểu cú pháp cơ bản của lệnh find:

find [path] [expression]
  • [path]: Thư mục hoặc cây thư mục nơi bạn muốn tìm kiếm các file. Nếu không được chỉ định, thư mục hiện tại sẽ được sử dụng.
  • [expression]: Các tiêu chí được sử dụng để tìm kiếm các file, chẳng hạn như tên file, loại file, kích thước, v.v.

Bây giờ, hãy thử một số ví dụ cơ bản:

  1. Tìm kiếm tất cả các file trong thư mục hiện tại:

    find .

    Ví dụ đầu ra:

    .
    ./file1.txt
    ./file2.txt
    ./directory1
    ./directory1/file3.txt
  2. Tìm kiếm tất cả các file có phần mở rộng .txt trong thư mục hiện tại:

    find . -name "*.txt"

    Ví dụ đầu ra:

    ./file1.txt
    ./file2.txt
    ./directory1/file3.txt
  3. Tìm kiếm tất cả các thư mục trong thư mục hiện tại:

    find . -type d

    Ví dụ đầu ra:

    .
    ./directory1
  4. Tìm kiếm tất cả các file lớn hơn 1 megabyte (MB) trong thư mục hiện tại:

    find . -size +1M

    Ví dụ đầu ra:

    ./large_file.zip

Lệnh find cung cấp nhiều tùy chọn và biểu thức hơn để tinh chỉnh các tìm kiếm của bạn. Trong các bước tiếp theo, bạn sẽ khám phá các trường hợp sử dụng nâng cao hơn của lệnh find.

Tìm kiếm file theo tên và loại file

Trong bước này, bạn sẽ học cách sử dụng lệnh find để tìm kiếm các file dựa trên tên và loại file của chúng.

  1. Tìm kiếm file theo tên:

    Để tìm kiếm file theo tên, bạn có thể sử dụng tùy chọn -name theo sau là tên file hoặc mẫu wildcard.

    find . -name "file1.txt"

    Ví dụ đầu ra:

    ./file1.txt

    Bạn cũng có thể sử dụng các mẫu wildcard để tìm kiếm nhiều file có tên tương tự:

    find . -name "*.txt"

    Ví dụ đầu ra:

    ./file1.txt
    ./file2.txt
    ./directory1/file3.txt
  2. Tìm kiếm file theo loại file:

    Để tìm kiếm file theo loại của chúng, bạn có thể sử dụng tùy chọn -type theo sau là ký tự loại file. Các ký tự loại file phổ biến là:

    • f: file thông thường
    • d: thư mục
    • l: liên kết tượng trưng
    find . -type f -name "*.txt"

    Ví dụ đầu ra:

    ./file1.txt
    ./file2.txt
    ./directory1/file3.txt
    find . -type d

    Ví dụ đầu ra:

    .
    ./directory1

Bạn có thể kết hợp các tùy chọn -name-type để tinh chỉnh các tìm kiếm của mình. Ví dụ: để tìm tất cả các file thông thường có phần mở rộng .txt trong thư mục hiện tại:

find . -type f -name "*.txt"

Ví dụ đầu ra:

./file1.txt
./file2.txt
./directory1/file3.txt

Kết hợp find với các lệnh khác để tìm kiếm nâng cao

Trong bước này, bạn sẽ học cách kết hợp lệnh find với các lệnh Linux khác để thực hiện các tìm kiếm hệ thống file nâng cao hơn.

  1. Tìm và xóa file:

    Để tìm và xóa các file phù hợp với một số tiêu chí nhất định, bạn có thể sử dụng lệnh find cùng với lệnh rm:

    find . -type f -name "*.tmp" -delete

    Lệnh này sẽ tìm tất cả các file thông thường (-type f) có phần mở rộng .tmp trong thư mục hiện tại và xóa chúng.

  2. Tìm và thực thi các lệnh trên các file phù hợp:

    Bạn có thể sử dụng lệnh find để thực thi một lệnh cụ thể trên các file phù hợp với tiêu chí tìm kiếm của bạn. Tùy chọn -exec cho phép bạn thực hiện điều này.

    find . -type f -name "*.txt" -exec cat {} \;

    Lệnh này sẽ tìm tất cả các file thông thường (file .txt) trong thư mục hiện tại và hiển thị nội dung của chúng bằng lệnh cat.

  3. Tìm và sao chép file:

    Bạn có thể kết hợp find với lệnh cp để sao chép các file phù hợp với tiêu chí tìm kiếm của bạn đến một vị trí khác.

    find . -type f -name "*.txt" -exec cp {} ~/backups/ \;

    Lệnh này sẽ tìm tất cả các file .txt trong thư mục hiện tại và sao chép chúng vào thư mục ~/backups/.

  4. Tìm và di chuyển file:

    Tương tự, bạn có thể sử dụng find với lệnh mv để di chuyển các file phù hợp với tiêu chí tìm kiếm của bạn đến một vị trí khác.

    find . -type f -name "*.bak" -exec mv {} ~/archive/ \;

    Lệnh này sẽ tìm tất cả các file .bak trong thư mục hiện tại và di chuyển chúng vào thư mục ~/archive/.

Bằng cách kết hợp lệnh find với các lệnh Linux khác, bạn có thể tạo ra các quy trình làm việc tìm kiếm và quản lý hệ thống file mạnh mẽ và linh hoạt.

Tổng kết

Trong lab này, bạn đã học cách sử dụng cơ bản lệnh find trong Linux, bao gồm cách tìm kiếm file theo tên, loại file và kích thước. Bạn cũng đã khám phá cách kết hợp lệnh find với các lệnh khác để tìm kiếm nâng cao hơn. Các điểm học tập chính được đề cập trong lab này bao gồm:

Hiểu cú pháp cơ bản của lệnh find và các thành phần chính của nó - đường dẫn tìm kiếm và biểu thức. Thực hiện các tìm kiếm đơn giản cho tất cả các file trong một thư mục, các file có phần mở rộng cụ thể và các thư mục. Tìm kiếm các file dựa trên các tiêu chí về kích thước, chẳng hạn như các file lớn hơn một kích thước nhất định. Kết hợp lệnh find với các lệnh khác như xargs cho các thao tác tìm kiếm phức tạp hơn.

400+ câu lệnh phổ biến trong Linux