Lệnh TÌM Linux có ví dụ


Bạn có biết có bao nhiêu tệp trong bản cài đặt Linux mới không? Nếu bạn sử dụng PopOS! Phân phối Linux làm ví dụ, có hơn 31.000 tệp. Đó là trước khi bạn bắt đầu tạo bất kỳ tài liệu nào, lưu trữ nhạc, tải xuống tệp PDF hoặc sắp xếp ảnh.

Vì điều này, việc tìm đúng tệp hoặc thư mục trong Linux khi bạn cần sẽ trở thành một thách thức. Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng lệnh FIND của Linux và chúng tôi sẽ cung cấp cho bạn tất cả các ví dụ có thể.

Cú pháp lệnh TÌM Linux

Cú pháp đề cập đến cách các từ hoặc lệnh được kết hợp với nhau. Giống như một câu bình thường có thể trở nên vô nghĩa chỉ bằng cách xáo trộn các từ, các lệnh có thể không thành công nếu chúng không được sử dụng đúng cú pháp.

tìm [đường dẫn] [điều kiện] [hành động]

Điều đó có nghĩa là gì:

tìm – khởi chạy tiện ích Tìm trong Linux

đường dẫn – nơi cần tìm

điều kiện – đối số bạn muốn áp dụng cho tìm kiếm

hành động – bạn muốn làm gì với kết quả

Một ví dụ đơn giản sử dụng cả ba kiểu như:

tìm . -name file-sample.rtf -print

Như bạn đã đoán, thao tác này sẽ tìm thấy tên tệp file-sample.rtf .

Đường dẫn dấu chấm (. ) yêu cầu find tìm trong thư mục hiện tại và bất kỳ thư mục nào bên trong nó.

Tên điều kiện yêu cầu find lấy tệp có tên cụ thể đó.

Hành động -print yêu cầu FIND hiển thị kết quả trên màn hình.

Dấu chấm và -print là mặc định cho lệnh find. Vì vậy, nó vẫn sẽ làm điều tương tự nếu bạn không sử dụng chúng. Vì vậy, find -name file-sample.rtf sẽ cho bạn kết quả tương tự.

Linux TÌM trong thư mục khác

Bạn có thể tìm kiếm trong một thư mục khác với thư mục bạn đang ở. Chỉ cần chèn đường dẫn đến thư mục sau TÌM. Nếu bạn đang ở thư mục gốc và biết tệp nằm ở đâu đó trong thư mục home/user thì bạn sẽ sử dụng:

tìm nhà/tên người dùng file-sample.rtf

Đây vẫn là tìm kiếm đệ quy nên nó sẽ đi qua mọi thư mục dưới người dùng ..

Linux TÌM Tìm kiếm nhiều thư mục

Nếu bạn muốn tìm kiếm trong nhiều thư mục cùng một lúc, chỉ cần liệt kê chúng trong lệnh, cách nhau bằng dấu cách.

tìm /lib /var /bin -name file-sample.rtf

TÌM KIẾM Linux không có đệ quy hoặc đệ quy giới hạn

Nếu bạn sử dụng lệnh FIND ở trên ở cấp độ gốc, nó sẽ xem qua mọi thư mục trên hệ thống. Vì vậy, nếu bạn chỉ muốn giữ lại thư mục hiện tại, hãy sử dụng tùy chọn -maxdeep . Số sau -maxdeep cho biết Tìm mức độ sâu cần đi trước khi dừng.

Sử dụng -maxdeep 1 chỉ có nghĩa là thư mục này.

tìm -name file-sample.rtf -maxdeep 1

Sử dụng -maxdeep 2 hoặc số lớn hơn có nghĩa là bạn sẽ đi sâu hơn nhiều cấp độ đó.

find -maxdeep 5 -name file-sample.rtf

Ví dụ về ký tự đại diện TÌM Linux

Lệnh TÌM sử dụng dấu hoa thị (* ) làm ký tự đại diện. Sử dụng nó cho bất kỳ phần nào của tên mà bạn không chắc chắn. Nó có thể được sử dụng nhiều lần trong tên. Nếu không có loại tệp trong tên tệp, kết quả cũng sẽ bao gồm các thư mục khớp.

tìm nhà/tên tệp *mẫu*

Ví dụ TÌM Linux theo Loại

Để chỉ tìm kiếm một tập tin hoặc một thư mục, hãy sử dụng tùy chọn -type và bộ mô tả thích hợp. Có một số loại nhưng tệp và thư mục là phổ biến nhất:

f – tập tin

d – thư mục

b – chặn thiết bị

c – thiết bị ký tự

l – liên kết tượng trưng

s – ổ cắm

tìm nhà/tên người dùng tệp*sample* -type d

Ví dụ về Linux FIND không phân biệt chữ hoa chữ thường

Không giống như Windows, Linux quan tâm đến việc chữ cái là chữ hoa hay chữ thường. Vì vậy, nếu bạn muốn nó tìm kiếm cả File-Sample.rtf và file-sample.rtf, hãy sử dụng tùy chọn -iname .

tìm nhà/người dùng -iname File-Sample.rtf

Linux TÌM một số ví dụ về tệp

Giả sử bạn muốn tìm phiên bản .rtf và .html của một tệp. Điều đó có thể được thực hiện bằng một lệnh sử dụng toán tử -o (hoặc). Trong một số bản phân phối, bạn có thể cần đặt tên trong dấu ngoặc, như ( -name file-sample.rtf -o -name file-sample.html ) ..

tìm nhà/tên người dùng file-sample.rtf -o -name file-sample.html

Linux TÌM các tệp không khớp với tên

Có lẽ bạn biết có phiên bản .html của tệp nhưng không biết nếu có phiên bản khác. Bạn có thể lọc phiên bản .html ra khỏi tìm kiếm bằng cách sử dụng tùy chọn -not .

tìm nhà/người dùng -name file-sample* -not -name *.html

TÌM Linux không có kết quả lỗi

Trong ví dụ về tìm kiếm không có đệ quy, hãy lưu ý rằng nó liệt kê mọi thư mục mà nó không thể tìm kiếm và kết quả chính xác. Điều đó thật khó chịu. Hãy ngăn nó hiển thị tất cả các thư mục “Quyền bị từ chối”. Kết hợp nó với Lệnh thiết bị đầu cuối Linux khác, grep. Bạn cũng có thể sử dụng Tìm với grep tới tìm tập tin có từ cụ thể trong đó.

find -maxdeep 5 -name file-sample.rtf 2>&1 | grep -v “Quyền bị từ chối”

Hãy chia nhỏ 2>&1 .

2 – đại diện cho stderrviết tắt của đầu ra lỗi tiêu chuẩn.

1 – đại diện cho stdoutviết tắt của đầu ra tiêu chuẩn

> – có nghĩa là chuyển hướng bất kỳ đầu ra nào ở bên trái của nó sang bất kỳ đầu ra nào ở bên phải của nó.

& – có nghĩa là tập hợp lại với nhau.

Vì vậy 2>&1 có nghĩa là lấy các lỗi tiêu chuẩn và chuyển hướng chúng, sau đó đặt chúng cùng với đầu ra tiêu chuẩn thành một đầu ra.

Bây giờ hãy xem | grep -v “Quyền bị từ chối” .

| (được gọi là pipe) – yêu cầu Linux cung cấp kết quả của bất kỳ thứ gì ở bên trái của nó cho bất kỳ thứ gì ở bên phải của nó. Nó đang được đưa vào lệnh grep.

grep – là tiện ích tìm kiếm văn bản.

-v – yêu cầu grep tìm kiếm bất cứ thứ gì không khớp với văn bản ở bên trái của -v. Trong trường hợp này, nó yêu cầu grep chỉ tìm bất kỳ thứ gì không chứa văn bản hoặc chuỗi, “Quyền bị từ chối”. Vì vậy, grep sẽ chỉ hiển thị cho bạn kết quả mà bạn đang tìm kiếm và bất kỳ lỗi nào không khớp với “Quyền bị từ chối”.

Ví dụ về TÌM Linux theo quyền

.

Để sử dụng tốt tính năng này, bạn cần tìm hiểu các quyền của Linux.

Tất cả các tệp ví dụ đều có quyền 664, ngoại trừ một tệp có quyền 775. Sử dụng tùy chọn -perm để tìm nó.

tìm Tài liệu/ -name file-sample* -type f -perm 775

Ví dụ TÌM Linux theo kích thước

Việc tìm kiếm tệp theo kích thước rất hữu ích để giúp những tệp lớn đó lấp đầy ổ cứng của bạn. Sử dụng tùy chọn -size, kích thước mong muốn và một trong các hậu tố sau. Nếu không sử dụng hậu tố, -size mặc định là b . Để tìm các tệp bằng và lớn hơn một kích thước nhất định, hãy đặt dấu cộng (+) trước kích thước.

M – Megabyte

G – Gigabyte

k – Kilobyte

b – khối (512 byte – mặc định)

c – byte

w – từ (hai byte cùng nhau)

tìm -size +500k

TÌM Linux theo chủ sở hữu

Có hai cách để tìm tập tin theo chủ sở hữu. Một cái là theo tên người dùng của chủ sở hữu và cái còn lại là theo nhóm của người dùng. Để tìm theo tên người dùng, hãy sử dụng tùy chọn -user , sau đó là tên người dùng. Để tìm theo nhóm người dùng, hãy sử dụng -group theo sau là tên nhóm..

tìm tên nhóm người dùng hoặc tìm tên người dùng

TÌM Tệp Linux theo ví dụ được sửa đổi lần cuối

Để tìm các tệp đã được sửa đổi hoặc chỉnh sửa trong X ngày qua, hãy sử dụng -mtime theo sau là một số. Đặt dấu trừ ( ) trước số sẽ thấy mọi thứ đã thay đổi trong vòng nhiều ngày trước đó. Dấu cộng (+ ) có nghĩa là trong vòng nhiều ngày trước đó.

find -name “file-sample*” -mtime +5 (cách đây hơn 5 ngày)

find -name “file-sample*” -mtime -5 (chưa đầy 5 ngày trước)

Để tìm theo sửa đổi lần cuối tính bằng phút, hãy sử dụng tùy chọn -mmin theo sau là số phút. Sử dụng dấu + và – như trên.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Ví dụ TÌM Tệp Linux theo THỜI GIAN Truy cập Lần cuối

.

Tùy chọn được sử dụng để tìm tệp dựa trên thời điểm chúng được mở lần cuối là -atime trong nhiều ngày và -amin trong vài phút. Theo sau đó là số ngày hoặc số phút để quay lại và sử dụng dấu + và – để lớn hơn và nhỏ hơn.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Kết hợp TÌM với các lệnh Linux khác

Có một ví dụ ở trên về việc sử dụng find bằng lệnh grep và bạn có thể sử dụng nó với nhiều ví dụ khác. Bạn có thể thấy rằng việc sử dụng lệnh tìm và các lệnh khác có thể rất mạnh mẽ và tiết kiệm thời gian rất lớn. Hãy tưởng tượng bạn phải xóa một loạt các loại tệp cụ thể. Thay vì tìm kiếm xung quanh trong trình khám phá tệp, bạn chỉ cần tạo lệnh phù hợp và hoàn tất sau vài giây. Bây giờ bạn sẽ sử dụng lệnh find như thế nào?

.

bài viết liên quan:


18.01.2022