Skip to main content

Sử dụng lệnh Linux và Unix

Downloading a snapshot of your Vultr server 20160730 (Tháng Tư 2024)

Downloading a snapshot of your Vultr server 20160730 (Tháng Tư 2024)
Anonim

Lệnh Linux và Unix tìm thấy thực hiện tìm kiếm các tệp trong hệ thống phân cấp thư mục.

Cú pháp cho tìm thấy chỉ huy:

tìm đường dẫn … biểu thức

Sự miêu tả

Trang hướng dẫn này tài liệu phiên bản GNU của tìm thấy . Lệnh tìm thấy tìm kiếm cây thư mục bắt nguồn từ mỗi tên tệp đã cho bằng cách đánh giá biểu thức đã cho từ trái sang phải, theo các quy tắc ưu tiên (xem phần Các toán tử bên dưới), cho đến khi kết quả được biết; nói cách khác, phía bên tay trái là sai và hoạt động, đúng cho hoặc là , tại thời điểm đó tìm thấy chuyển sang tên tệp tiếp theo.

Đối số đầu tiên bắt đầu bằng:

  • -
  • ( hoặc là ),
  • !

được lấy làm khởi đầu của biểu thức; bất kỳ đối số nào trước đó là đường dẫn tìm kiếm và bất kỳ đối số nào sau đó là phần còn lại của biểu thức. Nếu không có đường dẫn nào được cung cấp, thư mục hiện tại sẽ được sử dụng. Nếu không có biểu thức nào được đưa ra, biểu thức -in Được sử dụng.

Các tìm thấy lệnh thoát với trạng thái 0 nếu tất cả các tệp được xử lý thành công, lớn hơn 0 nếu xảy ra lỗi.

Biểu thức

Biểu thức được tạo thành từ các tùy chọn (ảnh hưởng đến hoạt động tổng thể hơn là xử lý một tệp cụ thể và luôn trả về đúng), các phép thử (trả về giá trị đúng hoặc sai) và các hành động (có tác dụng phụ và trả về true hoặc giá trị sai), tất cả được phân tách bởi toán tử. Cách diễn đạt - và được giả định khi bỏ qua toán tử. Nếu biểu thức không chứa hành động nào khác ngoài -prune , sau đó -in được thực hiện trên tất cả các tệp mà biểu thức là đúng.

Tùy chọn

Tất cả các tùy chọn luôn trả về true. Chúng luôn luôn có hiệu lực, thay vì được xử lý chỉ khi vị trí của chúng trong biểu thức đạt được. Do đó, để rõ ràng, tốt nhất là đặt chúng vào đầu biểu thức.

- ngày đầu tiên Đo lường thời gian (cho -amin, -atime, -cmin, -ctime, -mmin, và -mtime ) từ đầu ngày hôm nay thay vì từ 24 giờ trước.
-dep Xử lý nội dung của mỗi thư mục trước chính thư mục đó.
-theo Liên kết tượng trưng cho Dereference. Implies -nôt .
-Cứu giúp hoặc là --Cứu giúp In tóm tắt việc sử dụng dòng lệnh tìm thấy và thoát.
-maxdepth con số Giảm tối đa số lượng các cấp (một số nguyên không âm) của các thư mục bên dưới các đối số dòng lệnh. Cách diễn đạt -maxdepth 0 có nghĩa là chỉ áp dụng các thử nghiệm và hành động cho các đối số dòng lệnh.
-mindepth number Không áp dụng bất kỳ thử nghiệm hoặc hành động nào ở các mức thấp hơn số (số nguyên không âm). Cách diễn đạt -mindepth 1 có nghĩa là xử lý tất cả các tệp ngoại trừ các đối số dòng lệnh.
-mount Không hạ xuống các thư mục trên các hệ thống tệp khác. Tên thay thế cho -xdev , để tương thích với một số phiên bản khác của tìm thấy .
-nôt Không tối ưu hóa bằng cách giả sử rằng các thư mục chứa ít hơn 2 thư mục con hơn số liên kết cứng của chúng. *
-phiên bản hoặc là --phiên bản In tìm thấy số phiên bản và thoát.
-xdev Không hạ xuống các thư mục trên các hệ thống tệp khác.

* Tùy chọn này là cần thiết khi tìm kiếm các hệ thống tập tin không tuân theo quy ước liên kết thư mục Unix, chẳng hạn như các hệ thống tệp CD-ROM hoặc MS-DOS hoặc các điểm gắn kết khối AFS. Mỗi thư mục trên một hệ thống tập tin Unix bình thường có ít nhất 2 liên kết cứng: tên của nó và của nó. (kỳ) nhập cảnh. Ngoài ra, các thư mục con của nó (nếu có) đều có. mục được liên kết với thư mục đó.

Khi nào tìm thấy đang kiểm tra một thư mục, sau khi nó đã đánh bại hai thư mục con ít hơn số liên kết của thư mục, nó biết rằng phần còn lại của các mục trong thư mục là các thư mục không ( lá các tệp trong cây thư mục). Nếu chỉ các tên của các tập tin cần được kiểm tra, không cần phải chỉ định chúng; điều này giúp tăng đáng kể tốc độ tìm kiếm.

Kiểm tra

Đối số bằng số có thể được chỉ định là:

+ n Lớn hơn n.
-n Đối với ít hơn n.
n Chính xác n.
-amin n Tệp được truy cập lần cuối n một vài phút trước.
-an hơn tệp Tệp được truy cập lần cuối gần đây hơn tập tin đã được sửa đổi. -anewer bị ảnh hưởng bởi -follow chỉ khi -follow đến trước -anewer trên dòng lệnh.
-kịp thời n Tệp được truy cập lần cuối n * 24 giờ trước.
-cây n Trạng thái của tệp đã được thay đổi lần cuối n một vài phút trước.
-công cụ Trạng thái của tệp đã được thay đổi gần đây nhất so với tệp đã được sửa đổi.- cnewer bị ảnh hưởng bởi -theo chỉ nếu -theo đến trước -công cụ trên dòng lệnh.
-cần n Trạng thái của tệp đã được thay đổi lần cuối n * 24 giờ trước.
-trống Tệp trống và là một tệp thông thường hoặc một thư mục.
-sai Luôn luôn sai.
-loại loại Tệp nằm trên hệ thống tệp thuộc loại được chỉ định. Các loại hệ thống tập tin hợp lệ khác nhau giữa các phiên bản Unix khác nhau; một danh sách không đầy đủ của các loại hệ thống tập tin được chấp nhận trên một số phiên bản của Unix hoặc khác là: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Bạn có thể sử dụng -printf với chỉ thị% F để xem các loại hệ thống tệp của bạn.
-gid n ID nhóm số của tệp là n .
-nhóm gname Tệp thuộc về nhóm gname (ID nhóm số được cho phép).
- tên mẫu Giống như -lname, nhưng trận đấu không phân biệt chữ hoa chữ thường.
-tên mẫu Như -Tên , nhưng trận đấu không phân biệt chữ hoa chữ thường. Ví dụ, các mẫu fo * và F ?? khớp tên tệp Foo , FOO , foo , foo , v.v.
-trong n Tệp có số inode n .
- toàn bộ mẫu Như -con đường , nhưng trận đấu không phân biệt chữ hoa chữ thường.
-kiểu full Giống như -regex, nhưng trận đấu không phân biệt chữ hoa chữ thường.
-nút n Tệp có n liên kết.
-lệnh mẫu Tệp là một liên kết tượng trưng có nội dung phù hợp với mẫu vỏ. Các siêu ký tự không điều trị / hoặc là . đặc biệt.
-mmin n Dữ liệu của tệp đã được sửa đổi lần cuối n một vài phút trước.
-mtime n Dữ liệu của tệp đã được sửa đổi lần cuối n * 24 giờ trước.
- tên mẫu Cơ sở của tên tệp (đường dẫn có các thư mục hàng đầu bị xoá) khớp với mẫu vỏ. Các siêu ký tự (*, ?) không khớp với . ở đầu tên cơ sở. Để bỏ qua một thư mục và các tệp trong thư mục đó, hãy sử dụng -prune ; xem ví dụ trong mô tả về -con đường .
-nút hơn tệp Tệp đã được sửa đổi gần đây hơn tập tin . Cách diễn đạt -newer bị ảnh hưởng bởi -theo chỉ nếu -theo đến trước -newer trên dòng lệnh.
-nouser Không có người dùng nào tương ứng với ID người dùng số của tệp.
-nogroup Không có nhóm nào tương ứng với ID nhóm số của tệp.
-đường dẫn Tên tệp khớp với mẫu vỏ mẫu . Các siêu ký tự không điều trị / hoặc là . đặc biệt; ví dụ,tìm thấy . -path './sr*sc sẽ in một mục nhập cho một thư mục có tên ./src/misc (nếu có). Để bỏ qua toàn bộ cây thư mục, hãy sử dụng -prune thay vì kiểm tra mọi tệp trong cây. Ví dụ, để bỏ qua thư mục src / emacs và tất cả các tệp và thư mục bên dưới nó, và in tên của các tệp khác được tìm thấy, hãy làm như sau:tìm thấy . -path './src/emacs' -prune -o -print
-quảng cáo Các bit cho phép của tệp là chính xác chế độ (bát phân hoặc ký hiệu). Các chế độ tượng trưng sử dụng chế độ 0 làm điểm khởi hành.
-perm -ode Tất cả các bit cho phép chế độ được đặt cho tệp.
chế độ -perm + Bất kỳ bit quyền nào chế độ được đặt cho tệp.
-regex pattern Tên tệp khớp với cụm từ thông dụng mẫu . Đây là một trận đấu trên toàn bộ con đường, không phải là một tìm kiếm. Ví dụ: để khớp với tệp có tên ./fubar3, bạn có thể sử dụng cụm từ thông dụng .*quán ba. hoặc là . * b. * 3, nhưng không b. * r3.
-size n bckw Sử dụng tệp n đơn vị không gian. Các đơn vị là các khối 512 byte theo mặc định hoặc nếu b theo sau n , byte nếu c theo sau n , kilobyte nếu k theo sau n hoặc các từ 2 byte nếu w theo sau n . Kích thước không tính khối gián tiếp, nhưng nó đếm số khối trong tệp thưa thớt mà không thực sự được phân bổ.
-thật Luôn luôn đúng.
-loại c Tệp thuộc loại c :
b Block (đệm) đặc biệt
c Ký tự (không bị cản trở) đặc biệt
d Danh mục
p Tên được đặt tên (FIFO)
f Tệp thông thường
l Liên kết tượng trưng
S Ổ cắm
D cửa (Solaris)
-nếu n ID người dùng số của tệp là n .
-sử dụng n Tệp được truy cập lần cuối n ngày sau khi trạng thái của nó được thay đổi lần cuối.
-user uname Tệp được sở hữu bởi người dùng không ai biết (cho phép ID người dùng số).
-xtype c Giống như -kiểu trừ khi tệp là một liên kết tượng trưng. Đối với các liên kết tượng trưng: nếu -theo chưa được đưa ra, đúng nếu tệp là một liên kết đến một tệp kiểu c ; nếu -theo đã được đưa ra, đúng nếu c là l. Nói cách khác, đối với các liên kết tượng trưng, -xtype kiểm tra loại tệp -kiểu không kiểm tra.

Hành động

-exec chỉ huy ;

Thi hành chỉ huy ; đúng nếu 0 trạng thái được trả về. Tất cả các đối số sau đâytìm thấy được lấy làm đối số cho lệnh cho đến khi một đối số bao gồm `; ' gặp phải. Chuỗi `{} 'được thay thế bằng tên tệp hiện tại đang được xử lý ở mọi nơi nó xuất hiện trong các đối số cho lệnh, không chỉ trong các đối số mà nó ở một mình, như trong một số phiên bảntìm thấy. Cả hai công trình này có thể cần phải được thoát (với một ` ') hoặc được trích dẫn để bảo vệ chúng khỏi sự mở rộng của vỏ. Lệnh được thực thi trong thư mục khởi động.

-fls tập tin

Thật; như -ls nhưng viết thư cho tập tin như -fprint.

-fprint tập tin

Thật; in tên tập tin đầy đủ vào tập tin tập tin . Nếu tập tin không tồn tại khitìm thấy được chạy, nó được tạo ra; nếu nó tồn tại, nó bị cắt ngắn. Các tên tập tin `` / dev / stdout '' và `` / dev / stderr '' được xử lý đặc biệt; chúng đề cập đến đầu ra tiêu chuẩn và đầu ra lỗi chuẩn, tương ứng.

-fprint0 tập tin

Thật; như -print0 nhưng viết thư cho tập tin như -fprint.

-fprintf tập tin định dạng

Thật; như -printf nhưng viết thư cho tập tin như -fprint.

-được chỉ huy ;

Giống như -exec nhưng yêu cầu người dùng đầu tiên (trên đầu vào tiêu chuẩn); nếu đáp ứng không bắt đầu bằng `y 'hoặc` Y', không chạy lệnh và trả về false.

-in

Thật; in tên tệp đầy đủ trên đầu ra tiêu chuẩn, theo sau là một dòng mới.

-print0

Thật; in tên tệp đầy đủ trên đầu ra tiêu chuẩn, theo sau là một ký tự null.Điều này cho phép các tên tệp chứa các dòng mới được diễn giải chính xác bằng các chương trình xử lýtìm thấy đầu ra.

-printf định dạng

Thật; in định dạng trên đầu ra tiêu chuẩn, giải thích ` 'thoát và`%' chỉ thị. Độ rộng trường và các giá trị có thể được xác định bằng hàm `printf 'C. Không giống như -print, -printf không thêm một dòng mới ở cuối chuỗi. Các lối thoát và chỉ thị là:

a

Chuông báo thức.

b

Backspace.

c

Dừng in từ định dạng này ngay lập tức và xóa đầu ra.

f

Thức ăn dạng.

n

Dòng mới.

r

Vận chuyển trở lại.

t

Tab ngang.

v

Tab dọc.

\

Dấu gạch chéo ngược (` ').

NNN

Ký tự có mã ASCII là NNN (bát phân).

Ký tự ` 'được theo sau bởi bất kỳ ký tự nào khác được coi là ký tự bình thường, do đó cả hai đều được in.

%%

Một dấu phần trăm chữ.

% a

Thời gian truy cập cuối cùng của tệp theo định dạng được hàm C `ctime 'trả về.

% A k

Thời gian truy cập cuối cùng của tệp theo định dạng được chỉ định bởi k , hoặc là `@ 'hoặc chỉ thị cho hàm` strftime' của C `. Các giá trị có thể cho k được liệt kê dưới đây; một số trong số chúng có thể không có sẵn trên tất cả các hệ thống, do sự khác biệt trong `strftime 'giữa các hệ thống.

@

giây kể từ ngày 1 tháng 1 năm 1970, 00:00 GMT.

Trường thời gian:

H

giờ (00,23)

tôi

giờ (01,12)

k

giờ (0,23)

l

giờ (1..12)

M

phút (00..59)

p

AM hoặc AM của địa phương

r

thời gian, 12 giờ (hh: mm: ss AP M)

S

thứ hai (00..61)

T

thời gian, 24 giờ (hh: mm: ss)

X

đại diện thời gian của địa phương (H: M: S)

Z

múi giờ (ví dụ: EDT) hoặc không có gì nếu không thể xác định múi giờ

Các trường ngày:

một

tên ngày thường viết tắt của địa phương (Sun..Sat)

A

tên đầy đủ của ngày địa phương của địa phương, độ dài biến đổi (Chủ nhật..Saturday)

b

tên tháng viết tắt của địa phương (Jan..Dec)

B

tên tháng đầy đủ của miền địa phương, độ dài thay đổi (tháng 1 năm sau)

c

ngày và giờ của địa phương (Thứ bảy ngày 04 tháng 11 12:02:33 EST 1989)

d

ngày trong tháng (01,31)

D

ngày (tháng / ngày / năm)

h

giống như b

j

ngày trong năm (001,3666)

m

tháng (01..12)

U

số tuần trong năm với Chủ nhật là ngày đầu tiên trong tuần (00.,53)

w

ngày trong tuần (0..6)

W

số tuần trong năm với Thứ Hai là ngày đầu tiên trong tuần (00..53)

x

đại diện ngày của địa phương (mm / dd / yy)

y

hai số cuối của năm (00,99)

Y

năm (1970 …)

% b

Kích thước của tệp trong các khối 512 byte (được làm tròn lên).

% c

Thời gian thay đổi trạng thái cuối cùng của tệp ở định dạng được hàm C `ctime 'trả về.

% C k

Thời gian thay đổi trạng thái cuối cùng của tệp ở định dạng được chỉ định bởi k , tương tự như đối với% A.

% d

Độ sâu của tệp trong cây thư mục; 0 có nghĩa là tập tin là một đối số dòng lệnh.

% f

Tên tệp với bất kỳ thư mục hàng đầu nào bị xóa (chỉ phần tử cuối cùng).

% F

Loại tệp hệ thống tệp đang bật; giá trị này có thể được sử dụng cho -fstype.

% g

Tên nhóm của tệp hoặc ID nhóm số nếu nhóm không có tên.

% G

ID nhóm số của tệp.

% h

Các thư mục hàng đầu của tên tệp (tất cả trừ phần tử cuối cùng).

% H

Đối số dòng lệnh trong đó tệp được tìm thấy.

%tôi

Số inode của tệp (tính bằng số thập phân).

% k

Kích thước của tệp trong khối 1K (được làm tròn lên).

% l

Đối tượng của liên kết tượng trưng (chuỗi rỗng nếu tập tin không phải là một liên kết tượng trưng).

% m

Các bit cho phép của tệp (trong bát phân).

% n

Số lượng liên kết cứng đến tệp.

% p

Tên tệp.

% P

Tên tệp có tên của đối số dòng lệnh mà dưới đó nó được tìm thấy đã bị xóa.

%S

Kích thước của tệp tính bằng byte.

% t

Thời gian sửa đổi cuối cùng của tệp ở định dạng được hàm C `ctime 'trả về.

% T k

Thời gian sửa đổi cuối cùng của tệp ở định dạng được chỉ định bởi k , tương tự như đối với% A.

% u

Tên người dùng của tệp hoặc ID người dùng dạng số nếu người dùng không có tên.

% U

ID người dùng số của tệp.

Ký tự `% 'được theo sau bởi bất kỳ ký tự nào khác bị loại bỏ (nhưng ký tự khác được in).

-prune

Nếu -depth không được cho, đúng; không hạ xuống thư mục hiện tại.Nếu -depth được cho, sai; không có hiệu lực.

-ls

Thật; liệt kê tệp hiện tại ở định dạng `ls -dils 'trên đầu ra tiêu chuẩn. Số lượng khối là 1K khối, trừ khi biến môi trường POSIXLY_CORRECT được đặt, trong trường hợp này các khối 512 byte được sử dụng.

Nhà khai thác

Được liệt kê theo thứ tự ưu tiên giảm:

( expr )

Lực lượng ưu tiên.

! expr

Đúng nếu expr là sai.

-không phải expr

Giống như ! expr .

expr1 expr2

Và (ngụ ý); expr2 không được đánh giá nếu expr1 là sai.

expr1 -a expr2

Giống như expr1 expr2 .

expr1 - và expr2

Giống như expr1 expr2 .

expr1 -o expr2

Hoặc là; expr2 không được đánh giá nếu expr1 là đúng.

expr1 -hoặc là expr2

Giống như expr1 -o expr2 .

expr1 , expr2

Danh sách; cả hai expr1 và expr2 luôn được đánh giá. Giá trị của expr1 bị loại bỏ; giá trị của danh sách là giá trị của expr2 .

Ví dụ

tìm / home -user joe

Tìm mọi tệp trong thư mục / nhà thuộc sở hữu của người dùng joe.

tìm / usr -name * stat

Tìm mọi tệp trong thư mục / usr kết thúc bằng ".stat".

tìm / var / spool -mtime +60

Tìm mọi tệp trong thư mục / var / spool đã được sửa đổi hơn 60 ngày trước.

tìm / tmp -name lõi-type f -print | xargs / bin / rm -f

Tìm tệp có têncốt lõi trong hoặc bên dưới thư mục/ tmp và xóa chúng.Lưu ý rằng thao tác này sẽ hoạt động không chính xác nếu có bất kỳ tên tệp nào chứa dòng mới, dấu ngoặc đơn hoặc dấu ngoặc kép hoặc dấu cách.

tìm / tmp -name core-type f -print0 | xargs -0 / bin / rm -f

Tìm tệp có têncốt lõi trong hoặc bên dưới thư mục/ tmp và xóa chúng, xử lý tên tệp theo cách mà tên tệp hoặc thư mục chứa dấu ngoặc đơn hoặc dấu ngoặc kép, dấu cách hoặc dòng mới được xử lý chính xác. Các-Tên kiểm tra đến trước-kiểu kiểm tra để tránh phải gọistat (2) trên mọi tệp.

tìm thấy . tập tin f -expe '{}' ;

Chạy `tệp 'trên mọi tệp trong hoặc bên dưới thư mục hiện tại. Lưu ý rằng các dấu ngoặc đơn được đặt trong dấu ngoặc đơn để bảo vệ chúng khỏi việc diễn dịch dưới dạng dấu chấm câu lệnh. Dấu chấm phẩy được bảo vệ tương tự bằng cách sử dụng dấu gạch chéo ngược, mặc dù ';' có thể đã được sử dụng trong trường hợp đó.

tìm / (-perm -4000 -fprintf /root/suid.txt '% # m% u% p n' ), (-size + 100M -fprintf /root/big.txt '% -10s% p n' )

Duyệt qua hệ thống tệp chỉ một lần, liệt kê các tệp và thư mục setuid vào/root/suid.txt và các tệp lớn vào/root/big.txt.

tìm $ HOME -mtime 0

Tìm kiếm các tệp trong thư mục chính của bạn đã được sửa đổi trong hai mươi bốn giờ qua. Lệnh này hoạt động theo cách này vì thời gian từ mỗi tệp được sửa đổi lần cuối được chia cho 24 giờ và mọi phần còn lại sẽ bị hủy. Điều đó có nghĩa là để khớp-mtime

0, một tập tin sẽ phải có một sửa đổi trong quá khứ đó là ít hơn 24 giờ trước đây.

tìm thấy . -pông 664

Tìm kiếm các tệp có quyền đọc và ghi cho chủ sở hữu và nhóm của họ, nhưng những người dùng khác có thể đọc nhưng không ghi vào. Các tệp đáp ứng các tiêu chí này nhưng có các bit quyền hạn khác được đặt (ví dụ: nếu ai đó có thể thực thi tệp) sẽ không được khớp.

tìm thấy . -perm -664

Tìm kiếm các tệp có quyền đọc và ghi cho chủ sở hữu và nhóm của họ và những người dùng khác có thể đọc, bất kể sự hiện diện của bất kỳ bit quyền bổ sung nào (ví dụ: bit thực thi). Điều này sẽ phù hợp với một tập tin có chế độ 0777, ví dụ.

tìm thấy . -perm / 222

Tìm kiếm các tệp có thể ghi bởi ai đó (chủ sở hữu của họ hoặc nhóm của họ hoặc bất kỳ ai khác).

tìm thấy . -perm / 220 tìm thấy . -perm / u + w, g + w tìm thấy . -pm / u = w, g = w

Cả ba lệnh này đều thực hiện tương tự, nhưng lệnh đầu tiên sử dụng biểu diễn bát phân của chế độ tệp và hai lệnh còn lại sử dụng biểu mẫu. Các lệnh này tất cả tìm kiếm các tệp có thể ghi được bởi chủ sở hữu hoặc nhóm của chúng. Các tập tin không phải được ghi bởi cả chủ sở hữu và nhóm được đối sánh; một trong hai sẽ làm.

tìm thấy . -perm -220 tìm thấy . -perm -g + w, u + w

Cả hai lệnh này đều làm điều tương tự; tìm kiếm các tệp có thể ghi được bởi cả chủ sở hữu và nhóm của họ.

tìm thấy . -perm -444 -perm / 222! -perm / 111 tìm thấy . -perm -a + r -perm / a + w! -perm / a + x

Cả hai lệnh này đều tìm kiếm các tệp có thể đọc được cho tất cả mọi người (-perm -444 hoặc -perm -a + r), có ít nhất trên bộ bit viết (-perm / 222 hoặc -perm / a + w) nhưng không thực thi được cho bất kỳ ai (! -perm / 111 và! -perm / a + x tương ứng)

Quan trọng: Sử dụng Đàn ông chỉ huy ( % Đàn ông ) để xem cách một lệnh được sử dụng trên máy tính cụ thể của bạn.