TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# n- X- z' S, `
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
_ y x" Y( J( ~4 `' q2 E \6 f8 g3 N! D: K$ r/ s
语法
& F% f% g7 F3 u6 ^( {( {# f0 z( b' {find path -option [ -print ] [ -exec -ok command ] {} \;2 ~. D- s- `; x3 |4 e
参数说明 :8 T3 d2 P! {; z; J# }! D0 K
: J- B6 r" z4 P- ?. u3 G! Sfind 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。( b: E$ K0 U( @! o" I* ?4 {
$ U7 W7 x/ k, ^1 S2 @5 t0 pexpression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
0 r* p) p/ _; g" x) F
9 l+ H5 u8 Q2 T5 A' B! \, X-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
i" i8 x' W K1 ?' ~. E5 A" d, L! m& c' D/ K
-amin n : 在过去 n 分钟内被读取过
2 r) G! P. K! o* o( S1 u, _
: g' L {' X/ D! E+ g3 ~-anewer file : 比文件 file 更晚被读取过的文件
: y% t: T2 c8 B3 B3 _, r5 o4 A( c4 ]4 M$ z# D
-atime n : 在过去n天内被读取过的文件# l( F0 ?& g! i( z0 @
, n z) E& N+ W4 j5 c
-cmin n : 在过去 n 分钟内被修改过, L$ a2 @$ g5 o' e
- z& E: @$ `7 ~4 B. y6 \/ V) a; W5 V-cnewer file :比文件 file 更新的文件* p8 T+ V! ^/ P, F
0 c- |; O$ @ W+ D: u-ctime n : 在过去n天内被修改过的文件9 q6 F# O- d, ~* Y4 \
( P% ^' B2 o; g% n. v& X-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name4 N% x/ w. ^! r+ g* f9 c
+ D6 G# p5 C- T1 a
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
: e, ^* V9 a& S* W5 c2 c% m8 }2 Q. f ~2 n+ q# v7 p `* c; i
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写0 f* _' o7 d- t( U
8 V1 E" e# L! j) ?% q& T
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。7 C5 w6 d# M" d, Z0 g
9 b' V' s" z' U, K0 j
-type c : 文件类型是 c 的文件。 o( T- T* D8 W( ^/ y$ O* N7 P
6 I0 U- S. F0 q! w5 T% ~d: 目录$ K3 }" i! N( C) U8 G7 R2 D. X
. ]1 l) j$ R! k9 w* @7 g1 o! }& q( Z
c: 字型装置文件
3 y3 x$ T: @3 N, Z3 |
1 q6 P- T8 \- b% z$ Kb: 区块装置文件7 {! O' `0 G! k- Y5 N7 I
9 M- f2 f7 y0 o9 C5 E
p: 具名贮列9 }& F4 y5 D" S- d# K7 c4 C
3 \6 v, w9 t6 G7 H. v& cf: 一般文件0 b C: B/ E( L' c" B
7 ^0 j: e; A7 ^' k" L: y. ~0 Nl: 符号连结0 `1 P3 f1 b. `
3 C7 F7 t: P4 s2 M& |* P1 h& b
s: socket
0 v+ ^+ V, g g+ p/ y M/ d" ^
" |' V# ?/ Q) s/ d7 X+ h# t-pid n : process id 是 n 的文件+ [) p6 A6 @8 b: i' r
7 P# d" D; P" s# r5 F
你可以使用 ( ) 将运算式分隔,并使用下列运算。% _1 E0 ~1 Q8 M7 L1 L: ], L
- v# J, a" `$ l; d( F
exp1 -and exp2
. g$ F5 `# f! t2 l; g4 i: m6 Y$ a* M5 {3 R. t
! expr. a0 E0 g Y# j: I$ n
' y9 O! K* U. }4 l |: V-not expr
4 Q0 I% X1 M/ r% v
* U- H" u: @" t8 {1 |6 aexp1 -or exp2
( F" t" ~9 R2 E |1 d1 {4 g4 |% n8 c# g* d
exp1, exp2 N( }( O3 A: l) D3 ?
4 t& c' S5 J6 D% @% e# e
实例. Z# S0 l/ o+ k# K5 J7 @
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:" j. U) ~$ W: v/ q$ T# |! y
. M" x% j* P. T* k
# find . -name "*.c"3 B- z& I; [1 q$ D# X
将目前目录其其下子目录中所有一般文件列出
8 j& g3 P0 s( o! @/ N! H: J& a% f9 i+ a" T0 L$ I( H
# find . -type f3 J2 o7 q/ y# p& p# |; e: T7 G
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:7 ~0 V. `+ O% Q1 \8 C+ X
" w7 d3 D- f( A& B
# find . -ctime -20: S D- Z7 t% H# t3 F8 v
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:* y3 @) C8 B+ }( r( ~( k# ^3 b: V5 c5 V
) t/ r/ N, s& V# find /var/log -type f -mtime +7 -ok rm {} \;
8 A9 _0 q4 \: F! l3 F查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
2 g( n( ?1 ^" B$ c/ J E( T7 C& }" J
# find . -type f -perm 644 -exec ls -l {} \;, y3 p3 o$ E4 j& _4 X$ E4 r$ G
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
! [1 Y* G. @; X; l% [- S: y1 {/ E$ W Y9 N
# find / -type f -size 0 -exec ls -l {} \; |
|