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:
-
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
-
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
-
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
-
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.
-
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
-
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ườngd
: thư mụcl
: 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
và -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.
-
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ệnhrm
: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. -
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ệnhcat
. -
Tìm và sao chép file:
Bạn có thể kết hợp
find
với lệnhcp
để 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/
. -
Tìm và di chuyển file:
Tương tự, bạn có thể sử dụng
find
với lệnhmv
để 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.