TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ V6 t2 V D3 Z
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 q2 u- k+ }; m2 q) g+ S
3 b& t& }- [2 j; p语法
: y7 z. x# E' E5 R/ Mfind path -option [ -print ] [ -exec -ok command ] {} \;
! v* f6 Y% s8 V% H; M0 B: G参数说明 :
( S4 T. @* k+ H2 O' @3 A
5 C& B, P" \6 a) E/ I" U2 Bfind 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。4 {1 Q- g3 ^5 q8 O* c8 s. c$ i7 g% K
1 ]. ~, N9 K" Xexpression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。" _. X7 h7 r4 b) b0 X. u/ B
0 |; V9 f# f) D1 }7 R, u-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件, l7 S3 d$ \! j6 X" L9 M
- ^7 E: w: p: k |% Q* j-amin n : 在过去 n 分钟内被读取过
! D! W ~) ?9 y' o$ a+ O+ h
' u. m4 ?, K; \-anewer file : 比文件 file 更晚被读取过的文件* F* C2 q% S( i1 N
. U* l3 O( h' ~
-atime n : 在过去n天内被读取过的文件! H! ?6 K& E, B, G! v; c! P
1 F: x( [9 O# A5 e
-cmin n : 在过去 n 分钟内被修改过
! {; r3 m: p g) f) v8 ^! @$ r2 ?3 V1 h( V0 I
-cnewer file :比文件 file 更新的文件
5 `+ c. Z2 w8 W7 V" z; v5 i! j- B+ G' G) C2 `6 G8 V1 s4 `$ ?
-ctime n : 在过去n天内被修改过的文件7 p; n5 H0 d, E! t- O5 @
& q& y7 }% S# t$ S-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
; x0 U4 b$ ~) \
u- g' F4 I- B5 R1 t: o- N9 |+ n: G-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
- R: I: o1 A# ]3 I) I& ~. r& l( N4 Y: ]- E. `6 @2 P2 A
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写6 W/ H& B% t% Q' N8 l8 _
" @3 b, ?6 o6 @$ J" \
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。7 {: N" Y: C: [3 \' Z( W
/ |& l4 ^9 P7 R( Z-type c : 文件类型是 c 的文件。
1 a* E+ }0 Q. C* L# c" `, q+ O- J+ P" h- W
d: 目录
: r6 S9 p4 ~ d8 X6 W. I+ v& r" l, h0 I
c: 字型装置文件
1 u0 R$ a! j9 M8 V! \. T& \2 w& v& v9 U- `1 b; M5 b, Y
b: 区块装置文件
" u( b$ D- m) E
$ I }- X0 q) q: [: r& y4 lp: 具名贮列5 S$ J- g: B8 G- G3 j4 T* k
" z k& w6 x/ X' u
f: 一般文件7 E8 X5 {- @" ^2 q4 O g
- C2 k9 R9 k2 \% H4 P0 C/ {, N
l: 符号连结
, {& ?- q- }% ?1 i' h1 ]- K t k* g: d( M e
s: socket! s7 a; a$ Y3 M9 k# U- s
B$ t8 [2 o S! I6 C-pid n : process id 是 n 的文件
" [4 R) `3 x* d' y6 {$ E* B! {0 e1 R _# _3 E% K
你可以使用 ( ) 将运算式分隔,并使用下列运算。
0 p! ]; S% ~( M) O. j, }
1 i$ t' T+ V$ cexp1 -and exp2
& N& U9 E- I. D, Q* V
, E2 c( |5 g0 Y) m! expr' L2 h: C! {9 i5 ]% l, ^
# Q2 ~: ?) I; A0 v2 {' f& m
-not expr
! B# J" z8 D6 G" C2 n0 B- ?# g' J8 E" J+ J5 }/ y. \& u
exp1 -or exp22 ~1 V6 y& G2 u" X# y3 H5 \1 v
5 l# J! ?6 N. S9 i8 `0 ?7 i& D9 c! ]
exp1, exp2: X, _' T. Y3 r) J
- Z! l. }% h( o# ~& w9 Z实例+ I/ S f# U4 ]1 \3 w
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:0 \, D) ] q$ c
- a" N& h z: ?4 }
# find . -name "*.c"
+ v$ ~) L0 L: _; x7 X" u1 L" h6 c0 w将目前目录其其下子目录中所有一般文件列出
y: f# F8 {3 [: D/ L9 w& i7 y0 o' S4 A! C5 Z
# find . -type f K( V# {% T# q- n8 {+ W% A' U
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
+ L+ L7 G. m) [' B3 Q r. @7 R
, o' s+ `7 o2 u& F9 N" z6 d' p5 f# find . -ctime -20/ V. @! ^; D) t6 ~* ~
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:) c- R9 ?( H. x2 }- @3 }* [% G/ S
( B/ y" J" f6 p1 a9 ^5 B
# find /var/log -type f -mtime +7 -ok rm {} \;
% z/ Q$ {7 ?5 `+ ]7 O/ l2 s7 `0 A查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:5 ^; `! c0 o0 Q! }
+ C! k7 C& V( _* g: m5 p
# find . -type f -perm 644 -exec ls -l {} \;
# {- X6 s- q' W+ C' W% g查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:8 T5 Q7 _; h! u! ~; U; ]4 J3 T' K" P
+ ~ P4 g% A& P+ n! z5 \% P, J# find / -type f -size 0 -exec ls -l {} \; |
|