EDA365电子论坛网
标题:
Linux find 命令
[打印本页]
作者:
ubeautqq
时间:
2021-7-12 10:11
标题:
Linux find 命令
$ T5 j; d" ?2 t# g( ?: x' Z
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
: A9 C" l3 S' B9 |$ p8 U9 s' V
/ {$ `) h' P) B) ?. a
语法
+ y$ y" v' S$ p2 a: b
find path -option [ -print ] [ -exec -ok command ] {} \;
" r& v' v( b- {( j0 a0 [1 B5 _/ x7 f
参数说明 :
z: z/ B d: G) p/ d. r3 ^
0 Z/ c1 M3 X* P# X, E5 V9 E& J
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
3 F5 ~/ }& y0 F
. N2 Q& e8 w/ C
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
0 c+ y; P# g+ c b4 [, q- o
# ~" ]1 @$ B6 l4 w8 J, y: f
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
2 |& Z) n! [/ F: c! p
7 @1 [; S9 Q- \* `) {
-amin n : 在过去 n 分钟内被读取过
/ x1 B6 v2 R5 E/ z7 _8 q. y
. J" e* F, i1 g- w. y: _# |
-anewer file : 比文件 file 更晚被读取过的文件
3 D+ g! M; @' t- s+ V
5 B6 |' U; I/ }3 a( q% W6 v
-atime n : 在过去n天内被读取过的文件
# v: Z$ a- i4 P. I
& {2 c/ |+ |( J+ ~
-cmin n : 在过去 n 分钟内被修改过
0 C1 Y( Y8 C! g9 A5 l1 W' W Z& v
5 H! ]2 i, I$ E6 H9 W. _* v
-cnewer file :比文件 file 更新的文件
0 |3 [9 `+ U1 ~. u7 k; c
9 q& N- t2 J0 t0 o x
-ctime n : 在过去n天内被修改过的文件
( u3 \/ c7 d$ B, s
3 S+ B4 m1 l) R
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
+ H, D+ j3 O* @! g) V% Q7 h! D4 D
( R1 B* V" }& S( Y9 F ]* W/ x
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
8 E* ~: g" f' X7 {- Z3 N7 }) F
! K. v4 H# ]; S% E' U' s
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
) U, u! e% ?) e" v; x
5 ]6 f3 e, e% N
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
1 z7 J6 j( i3 \- k [% r& Q" R' O
& a) s( j# u3 E3 z+ @2 f" k$ T8 Y
-type c : 文件类型是 c 的文件。
$ B" \/ E4 V6 L) s# T( P n% l! j& p4 K
4 U9 p1 e3 B' G5 d
d: 目录
' q9 M% }' _3 y& W5 I
3 @: T! C: {9 a6 W
c: 字型装置文件
9 q- D( Z, w! G9 }6 v
8 p) Y3 ?* ~* Q
b: 区块装置文件
2 @; D7 {2 O' a+ l3 x: t* S$ Q3 \: Z
E! l3 N* z1 b5 L4 d2 _
p: 具名贮列
. Q8 e9 x# {1 Z- S7 |1 h; a
2 w4 n( A6 n) x" F' u3 W7 O4 H
f: 一般文件
( }0 J3 Q+ x! S! ]( Z- N& i
6 ^ {6 {1 E% k
l: 符号连结
; O# c2 n c, l$ \9 P. D
+ ]5 a; U) l3 m- @- c
s: socket
0 u \9 B# O7 u1 o v* ^: _
! R3 X$ b9 Q- K5 j: K
-pid n : process id 是 n 的文件
- n4 a0 F+ S* b; u& a2 C
" a, J, a: A- {. @
你可以使用 ( ) 将运算式分隔,并使用下列运算。
: o) p/ o0 @5 d4 i2 `/ d
2 w+ Y$ e" r, B: W `6 K
exp1 -and exp2
6 R: `0 x$ o+ }- t, Q
5 K" g) B% m" f; J
! expr
( i4 d. c1 H0 k4 c) c2 L
# F& a5 m# V& O- L3 @+ o& v1 x+ y
-not expr
2 I7 I0 p. l2 K$ ~/ T$ ?
2 n8 A; ?" r. h, B; }
exp1 -or exp2
4 m: Z# Y8 i- [( f
# @; G) c5 T% O7 q- X
exp1, exp2
% q7 T6 @# w& F6 f
9 k" v# G! b- _ a
实例
- u; b' v, Z9 }2 X8 _9 W
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
( M: f j6 T: E4 u' N; }& }: X' e
3 H/ O8 Y) a0 H9 G7 v+ \# t# [
# find . -name "*.c"
8 g2 T( M4 q1 C
将目前目录其其下子目录中所有一般文件列出
! o8 ^4 ?1 w/ Y9 F& \
/ P; i4 e: I+ K
# find . -type f
1 d2 v$ w7 c' A4 ~! p
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
% O* Z! Q6 K) N4 j" K, S
/ \/ A2 i8 `. p/ S
# find . -ctime -20
: K% B: i2 L. p: o7 P3 I1 q m
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
' u- p/ G% c, M5 D8 v
: _1 y& \. e; D: B& ~4 B
# find /var/log -type f -mtime +7 -ok rm {} \;
, E1 M9 e7 b+ V; I7 P; l5 p+ g
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
0 }; n' k2 K; G1 \! e- _
0 D4 [6 l: f" ^8 {
# find . -type f -perm 644 -exec ls -l {} \;
( U1 s0 S+ x; F' \
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
2 E# n6 K$ z/ I1 S/ ~
2 q3 g; S0 d* [/ J! }
# find / -type f -size 0 -exec ls -l {} \;
作者:
SsaaM7
时间:
2021-7-12 11:27
Linux find 命令
作者:
happyday
时间:
2021-7-12 13:27
Linux find 命令
作者:
mengtaiqi
时间:
2021-7-12 13:28
Linux find 命令
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2