Computer >> Máy Tính >  >> Hệ thống >> Linux

Linux FIND Command với các ví dụ

Bạn có biết có bao nhiêu tệp trong một bản cài đặt mới của Linux không? Nếu bạn sử dụng PopOS! Bản phân phối Linux là một 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 hình ảnh.

Linux FIND Command với các ví dụ

Do đó, việc tìm kiếm tệp hoặc thư mục phù hợp 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ẽ học 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ụ mà chúng tôi có thể làm được.

Cú pháp lệnh FIND của Linux

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

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

Đây là ý nghĩa của điều đó:

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

đường dẫn - tìm ở đâu

đ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 giống như sau:

tìm thấy. -name file-sample.rtf -print

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

Khoảng thời gian (. ) đường dẫn cho biết tìm kiế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 tìm để lấy tệp với tên cụ thể đó.

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

Dấu chấm và dấu là mặc định cho lệnh tìm. Vì vậy, nó vẫn sẽ hoạt động 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 FIND Command với các ví dụ

TÌM HIỂU Linux trong một 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 khi TÌM. Nếu bạn đang ở gốc và bạn biết tệp ở đâu đó trong nhà / người dùng thư mục bạn sẽ sử dụng:

tìm home / user -name file-sample.rtf

Linux FIND Command với các ví dụ

Nó vẫn là một tìm kiếm đệ quy, vì vậy nó sẽ đi qua mọi thư mục trong người dùng .

Linux TÌM KIẾ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.

find / lib / var / bin -name file-sample.rtf

Linux FIND Command với các ví dụ

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

Nếu bạn đã sử dụng lệnh FIND ở trên ở cấp cơ sở, lệnh này sẽ xem qua mọi thư mục trên hệ thống. Vì vậy, nếu bạn chỉ muốn dính vào thư mục hiện tại, hãy sử dụng -maxdepth Lựa chọn. Con số sau -maxdepth cho biết Tìm bao nhiêu để đi sâu trước khi dừng lại.

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

find -name file-sample.rtf -maxdepth 1

Linux FIND Command với các ví dụ

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

find -maxdepth 5 -name file-sample.rtf

Linux FIND Command với các ví dụ

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

Lệnh FIND sử dụng dấu hoa thị ( * ) dưới dạng 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 hơn một lần trong tên. Không có loại tệp như một phần của tên tệp, kết quả cũng sẽ bao gồm các thư mục phù hợp.

tìm tệp nhà / tên người dùng * mẫu *

Linux FIND Command với các ví dụ

Ví dụ về Linux FIND by Type

Để chỉ tìm kiếm một tệp 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ố tệp và thư mục phổ biến nhất:

f - tệp

d - thư mục

b - khối thiết bị

c - thiết bị ký tự

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

s - ổ cắm

tìm tệp nhà / tên người dùng * mẫu *-loại d

Linux FIND Command với các ví dụ

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

Không giống như Windows, Linux quan tâm đến việc một chữ cái là viết hoa hay viết 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 -iname tùy chọn.

tìm trang chủ / người dùng -iname Tệp-Sample.rtf

Linux FIND Command với các ví dụ

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

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

tìm home / user -name file-sample.rtf -o -name file-sample.html

Linux FIND Command với các ví dụ

Linux TÌM Tệp Không Khớp Tên

Có lẽ bạn biết có phiên bản .html của tệp, nhưng không có 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 -not tùy chọn .

tìm nhà / tên người dùng-tên tệp-mẫu *-không-tên * .html

Linux FIND Command với các ví dụ

Linux FIND mà không có kết quả lỗi

Trong ví dụ tì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. Thật là 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 một lệnh đầu cuối Linux khác, grep. Bạn cũng có thể sử dụng Tìm bằng grep để tìm các tệp có các từ cụ thể trong đó.

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

Linux FIND Command với các ví dụ

Hãy phân tích 2> &1 .

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

1 - đại diện cho stdout viế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ó.

& - nghĩa là kết 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ờ chúng ta hãy nhìn vào | grep -v “Quyền bị từ chối” .

| (được gọi là một đường ống) - 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 cung cấp cho lệnh grep.

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

-v - ra lệnh cho grep tìm kiếm bất kỳ 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ó ra lệnh cho 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ả 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ề Linux FIND by Permissions

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

Linux FIND Command với các ví dụ

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

find Documents / -name file-sample * -type f -perm 775

Linux FIND Command với các ví dụ

Ví dụ về Linux FIND by Size

Tìm tệp theo kích thước rất tiện lợi để làm cho các tệp khổng lồ đó 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 có hậu tố nào được sử dụng, -size sẽ mặc định thành 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 với nhau)

tìm -kích thước + 500k

Linux FIND Command với các ví dụ

Linux FIND bởi chủ sở hữu

Có hai cách để tìm tệp theo chủ sở hữu. Một là theo tên người dùng của chủ sở hữu và một là theo nhóm của người dùng. Để tìm theo tên người dùng, hãy sử dụng -người dùng , theo 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

Linux FIND Command với các ví dụ Linux FIND Command với các ví dụ

Linux TÌM Tệp 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 số ngày qua, hãy sử dụng -mtime theo sau là một số. Đặt dấu trừ ( - ) ở phía trước của số sẽ tìm thấy bất kỳ điều gì thay đổi trong vòng nhiều ngày trước đó. Dấu cộng ( + ) nghĩa là trong vòng nhiều ngày trước bây giờ.

find -name “file-sample *” -mtime +5 (hơn 5 ngày trước)

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

Linux FIND Command với các ví dụ

Để tìm theo lần sửa đổi gần đây nhất trong vài 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

Linux FIND Command với các ví dụ

Linux TÌM Tệp bằng Ví dụ TIme được 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 dõi nó với số ngày hoặc 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

Linux FIND Command với các ví dụ

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

Linux FIND Command với các ví dụ

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

Có một ví dụ ở trên về việc sử dụng find với lệnh grep và bạn có thể sử dụng nó với nhiều lệnh khác. Bạn có thể thấy rằng việc sử dụng lệnh find 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, chỉ cần tạo lệnh phù hợp và việc này được thực hiện trong vài giây. Bây giờ bạn sẽ sử dụng lệnh find như thế nào?