TA的每日心情 | 衰 2019-11-19 15:32 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
3 l6 B- B2 l# t3 e' P9 ?. u' y
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
" s7 f2 D) |; p m* Z) I1 }8 \2 b2 G9 f7 \/ D: y
语法
7 ~( P9 H4 s1 A$ \! j9 dfind path -option [ -print ] [ -exec -ok command ] {} \;% q8 y- _; _4 B) k: W
参数说明 :* Z; K, `( C2 D! R! [% o
( g- U& m, j }$ P) t3 P4 Jfind 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。6 e6 i4 S5 }: H+ m: v) d5 X# ^
* B5 g# T1 e0 o: g$ ?2 q
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。& j8 {, F% D: c
5 O7 @) d; t: q% L, A. v
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件/ _( M' y- v4 E2 i! m
0 q' o- d( T; \+ X1 ]. k4 s
-amin n : 在过去 n 分钟内被读取过. Y* |# Q6 v: B7 \9 K
# A- c5 ~. u. o7 U( L! s7 _- H8 F0 u-anewer file : 比文件 file 更晚被读取过的文件1 h- B w$ w: S8 W: V2 r
- w. v: B% C, f; ^: x; b% K& f
-atime n : 在过去n天内被读取过的文件
- H3 ?, k) P5 w7 Q# ?3 J! A0 J/ Z) J$ M
-cmin n : 在过去 n 分钟内被修改过
: Y+ u& g) v8 \% A0 }5 S9 N" y D Z2 E( o u4 p( @& a
-cnewer file :比文件 file 更新的文件
$ r" A! n6 \9 U O, {4 n0 S8 _7 `9 r* e# i* ?; T+ ^+ N8 U
-ctime n : 在过去n天内被修改过的文件
. @ Y8 G8 Z! z# ~1 P/ a- P6 E2 V) I
0 h: s) W% H1 T8 L/ a! i-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
6 V! p* y3 Z+ G& h, o6 w8 p# v6 k3 x! o
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写5 W/ J' |2 i, C' b) b' i
/ Q9 q' F) B$ o
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写) d" ]% Q( X! ~. O8 ]
6 T) N- w* J1 Z, ^" k, { s( m* T-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
0 u* M" e, ?9 ~9 t: C/ f0 V, ]3 x8 e2 Q/ t
-type c : 文件类型是 c 的文件。0 B! s* @: p, A+ U, ]
0 l8 D: P0 G* o0 b" S) b5 Dd: 目录! K' H3 |* ?7 ~9 b" ?
1 N s; w5 M) N8 K
c: 字型装置文件, A( X7 v! e8 B
" x0 `4 G( P" f) Y
b: 区块装置文件! |& j) d$ ~) ^% _
2 ]# k7 e/ N0 x# bp: 具名贮列9 }! r$ d# t* y' U- H' X8 m
6 P* a* {7 Y0 D
f: 一般文件3 P9 N ]3 w5 _& ^; g
# x$ s. g: h2 l x5 sl: 符号连结
! m7 k* B. M+ m# Q% a: a1 T
+ z" e) n' J5 Z& [, q" D) |s: socket
+ O. ?0 B* r. l5 G2 E# {. Y/ }: r
0 z4 T! R+ `& {- h3 T-pid n : process id 是 n 的文件
' E r$ O0 ~: }9 p
4 p6 Y* W) n- t+ K" l$ b$ Z你可以使用 ( ) 将运算式分隔,并使用下列运算。
, b' Y: ~7 K* t7 r1 h( h9 y4 h. W9 J+ i, f
exp1 -and exp2
! U% N; U- i" u8 {6 a1 l; `. L3 X9 E: @5 T3 G4 S: O
! expr
- h, V/ d+ l4 z: ?- U0 x1 F& E; v! @& }: W) G
-not expr
5 P8 @# W# ~$ }+ G8 w4 b. Y) b8 k$ I+ \1 y! w: P& D; X
exp1 -or exp2
1 `! B9 {6 _& k7 \& `/ U/ S; V1 a8 q/ d/ Y6 U, \
exp1, exp2
0 d1 ^, C0 ?) r! Q0 c4 W; w' I3 E+ ~7 v- b1 l$ P
实例5 i+ W3 Q; t4 |! @
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:2 `+ Q$ x0 d/ C. O+ @( e; j5 m! H
1 A! C! v9 z; O( B+ p& L1 }# find . -name "*.c"; L0 O( B" `2 Y2 F- M% D& m: C
将目前目录其其下子目录中所有一般文件列出/ s) D9 y2 L+ N* o3 j
3 ^' X7 B9 W) Q4 t# find . -type f
# U3 i5 [$ |' ?+ ^5 M将当前目录及其子目录下所有最近 20 天内更新过的文件列出:: {4 Y, f- V) b* d* S
/ k* j% I9 v% T4 T) p. e5 G' ?
# find . -ctime -20
/ v- Y- r0 [4 p2 x4 S& ?查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
& I& J8 C0 S8 G- C q- ~7 \5 P* R! \8 X# b
# find /var/log -type f -mtime +7 -ok rm {} \;4 o6 C# g& R' K8 y
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
5 }5 H; H! I4 T: E" b
# m1 \ e3 t- d5 s' T# find . -type f -perm 644 -exec ls -l {} \;
0 l, P# a% G) ?* U8 N查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:/ m- u7 |: U8 z* e: H5 {( R; e
% r3 k$ [4 A9 E5 \: ]# find / -type f -size 0 -exec ls -l {} \; |
|