呼吁行一向是Linux用户用来解决问题的首要选择,今天给巨匠介绍一下Linux系统中的Find呼吁。正如它的名字所暗示的,find是在磁盘中查找知足给定尺度的文件和目录的应用轨范。默认情形下,它从当前目录起头,向下扫描所有子目录。Find基于各类分歧的文件属性来进行发芽,而且可以对发芽结不美观执行某种操作,凡是是对每个发芽结不美观运行一些轨范。 find按照下列轨则判定 path 和 expression,在呼吁列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如不美观 path 是空字串则使用今朝路径,如不美观 expression 是空字串则使用 -print 为预设 expression。7 \5 E2 S; C6 ^4 L8 S
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。& t* o7 _ `: o( c
-mount, -xdev : 只搜检和指定目录在统一个档案系统下的档案,避免列出其它档案系统中的档案2 ~6 E. d3 f! Y' U
-amin n : 在曩昔 n 分钟内被篡夺过5 _' x; [# m6 C+ Y$ I1 I; p) ]
-anewer file : 比档案 file 更晚被篡夺过的档案
4 ~3 D; {% g& D( R% { -atime n : 在曩昔 n 天过篡夺过的档案
9 y. M6 U8 T4 @' @! a2 n -cmin n : 在曩昔 n 分钟内被改削过
/ C- t7 M a" P+ d, L -cnewer file :比档案 file 更新的档案 R" D. H4 U2 j8 e# H
-ctime n : 在曩昔 n 天过改削过的档案; g% E0 \2 d/ D$ m8 a' B k
-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name& A; F6 z. n( ^' G! F4 }3 ?5 b) Y& W7 [
-ipath p, -path p : 路径名称合适 p 的档案,ipath 会忽略巨细写6 ~& R3 T$ U A' a
-name name, -iname name : 档案名称合适 name 的档案。iname 会忽略巨细写% k( x2 T+ J8 D% M/ f5 y( a$ u' s
-size n : 档案巨细 是 n 单元,b 代表 512 位元组的区块,c 暗示字元数,k暗示 kilo
4 U! x) u; X. {1 K( } bytes,w 是二个位元组。-type c : 档案类型是 c 的档案。) f) }: L8 \1 O T9 V8 p" _9 u) f
d: 目录
- u; x, V0 y5 W% G: v2 Q2 Z! B c: 字型装配档案
# a( p6 N9 ]5 n2 F# o+ d! f i3 y9 ?- X b: 区块装配档案
: G6 }, E& E- d/ }' W p: 签字贮列
3 d+ U. S2 I6 N: ~ f: 一般档案
- u! y+ o# l3 K l: 符号连结
' ^% G0 p4 r$ z! D, G7 C5 C( D8 W c s: socket
8 w! W2 f1 t- f! c" A" L$ l -pid n : process id 是 n 的档案
) ~0 K6 Z3 f6 d( a 6 M$ a, I( Y9 H' C& T4 l$ `6 o7 Y
你可以使用 ( ) 将运算式分隔,并使用下列运算。3 {9 P' R; s4 E- r$ M( |
exp1 -and exp2; J) g- x5 a4 D2 T5 Z& d, z! H& u
! expr/ w X3 d$ f- \. C9 N
-not expr2 Y0 V6 K+ c$ {! z2 l/ q6 @
exp1 -or exp2
7 f' ?; _+ F% m3 l" W* } {* k! E exp1, exp2
; T8 B+ w, h' M 典型:/ Q% ^5 C: R4 G
将今朝目录及其子目录下所有延长档名是 c 的档案列出来。
6 u/ I( F5 f2 S' U9 r # find . -name "*.c"
# X* \4 o" Z" w; p. j 将今朝目录其其下子目录中所有一般档案列出0 i; w, L5 [6 F" B2 \
# find . -ftype f! x' U8 ]" k! s# e
( p$ z5 u1 n- E# v4 N
将今朝目录及其子目录下所有比来 20 分钟内更新过的档案列出
) _( V7 I. l; N; E% ~+ ~ # find . -ctime -20 7 g. {3 u2 N0 c) i8 r
find . -name "*" -exec grep xxx {} ; -print morexxx为你想要找的字符串8 m% |" P: s% h+ C1 |' A/ r" a
让我们来看一些例子:首先,为了在当前目录或子目录中查找所有html文件,我们可以使用:find -name "*.html" -type f4 U. V% E2 H: u) i. }& E) q
该呼吁有两个测试前提,第一个,“-name”用于磨练搜索过程中的每个文件名,如不美观你需要对巨细写敏感,可以使用“-iname”庖代。第二个参数是“-type”,它用于指定你感乐趣的文件类型。“f”暗示我们查找的是通俗文件,我们可以使用“d”暗示目录或使用“l”暗示符号毗连。在find 手册中可以看到该工具的所有选项。 |