find命令
一、find命令基本介绍
1、find作用
通过遍历指定路径实时查找符合条件的文件。
find工作特点
2、find工作特点
查找速度较慢 精确查找 实时查找 用户只能搜索有读取和执行权限的目录
3、语法
find [OPTIONS]... [查找路径] [查找条件] [处理方式] 查找路径:指定具体的目标路径,默认是当前所处的目录 查找条件:即查找标准,可以是文件名、文件大小、文件权限、文件属主与属组、inode、文件的时间戳、文件类型等等。如果不添加查找条件,则查找的是当前目录的所有文件。 处理方式:对符合条件的文件进行如显示、删除、替换等等的操作,默认是输出至标准输出设备上。
二、查找条件分类
1、根据文件名和inode号查找
-name :后接文件名称,支持使用global通配符如:*、?、[ ]、[^] ; -iname :后接文件名称,不区分字母大小写; -inum n :表示按inode号进行查找; -sameflie “filename” :表示相同inode号的文件,即硬链接文件; -link n:表示查找链接数为n的文件; -regex “PATTERN” :以PATTERN匹配整个文件路径字符串,而非仅是文件名 [root@localhost ~]# find -regex ".*.sh$" ./.cache/evolution/addressbook/trash ./scriptdir/rc.sh ./sum100.sh
2、根据文件的属主(UID)查找
-user USERNAME : 查找属主为指定用户的所有文件,如find /etc -user root -uid UID:查找指定UID的所有文件 -nouser :查找没有属主的所有文件
3、根据文件的属组(GID)查找
-group :查找指定属组的所有文件 -gid : 查找指定GID的所有文件 -nogroup :查找没有属组的所有文件
4、根据文件的类型查找
格式:-type TYPE TYPE包括: f : 普通文件 d:目录文件 l:符合链接文件(非硬链接哦) s:套接字文件 b:块设备文件 c:字符设备文件 p:管道文件
5、根据文件大小查找
-size [+|-] # :按指定的大小#来查找,常用单位有K、M、G 以搜索大小为6K的文件为例(如图),其搜索的范围是(5,6],注意区间 (#-1, #]表示#K [0,#-1]表示小于#K (#, ∞ )表示大于#K
6、根据时间戳
(1)以“天”为单位
-atime [+|-]# : -mtime [+|-]# : -ctime [+|-]# : 以搜索第6天的内容为例 #:[#,#-1) -#:(#,0] +#:(oo,#-1]
(2)以“分钟”为单位
-amin [+|-]# : -mmin [+|-]# : -cmin [+|-]# :
7、以组合条件查找
与:-a 或:-o 非: -not /! 摩根定律: 非(P 且 Q) = (非 P) 或 (非 Q) >> !(A -o B)=!A -a !B 非(P 或 Q) = (非 P) 且 (非 Q) >> !(A -a B)=!A -o !B 示例: 找出/tmp 目录下,属主不是root ,且文件名不是fstab 的文件,用两种方法。
8、根据权限查找
格式:-perm [/|-] MODE MODE:精确权限匹配,如find -perm 644 :表示匹配的文件权限只能是644。 /MODE:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足。9位权限之间存在或关系,注意在centos 7版本以前可以用+MODE。如find -perm /111:表示匹配的文件中ugo只有有一类用户有执行权限即符合条件 -MODE:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足。9位权限之间存在与关系。如find -perm /111:表示匹配的文件中ugo必须全部都要具有执行权限才符合条件。
三、处理方式(动作)
-print:将搜索的结果显示至屏幕,默认。 -ls:显示匹配的文件的详细信息,类同与 “ls -l”。 -delete:删除查找到的文件 -fls file:将查找的文件以长格式方式保存至指定的文件中。 -ok COMMAND {} \;对查找到的每一个文件都执行COMMAND命令,在执行COMMAND命令前都会要求用户确认,y表示同意,回车表示略过。 -exec COMMAND {} \;对查找到的每一个文件都执行COMMAND命令,但不需用户确认。
注意:
(1){ }:表示引用查找到的文件名称自身; (2)find 传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令 (3)如果查找的文件数量过多,导致一些命令不能接受过多参数,而导致命令执行失败,因此需要使用 find | xargs COMMAND 如图。
四、作业
1、查找/var目录下属主为root,且属组为mail的所有文件
2、查找/var目录下不属于root、lp、gdm的所有文件 3、查找/var目录下最近一周内其内容修改过,且属主不为root,也不是postfix的文件 4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件 5、查找/etc目录下大于1M且类型为普通文件的所有文件 6、查找/etc目录下所有用户都没有写权限的文件 7、查找/etc目录下至少有一类用户没有执行权限的文件 8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
压缩及归档工具的使用
1、gzip/gunzip/zcat
(1)gzip语法
gzip [options]... file... -d:解压缩,相当于gunzip -#:指定压缩比(1-9),默认是6,数字越大压缩比越大 -c:将压缩结果输出至标准输出 保留原文件:gzip -c filename > filename.gz
(2)gunzip:解压缩
(3)bzcat:查看gzip压缩文件内的文件列表
2、bzip2/bunzip2/bzcat
(1)bizp2语法
bizp2 [options]... file... -d:解压缩,相当于bunzip2 -#:指定压缩比(1-9),默认是6,数字越大压缩比越大 -k:保留原文件 -c:将压缩结果输出至标准输出
(2)bunzip2:解压缩
(3)bzcat:查看bizp2压缩文件内的文件列表
3、xz/unxz/xzcat
(1)xz语法
xz [options]... file... -d:解压缩,相当于unxz -#:指定压缩比(1-9),默认是6,数字越大压缩比越大 -k:保留原文件 -c:将压缩结果输出至标准输出
(2)unxz:解压缩
(3)xzcat:查看xz压缩文件内的文件列表
4、归档(打包)工具,tar
(1)tar语法
tar [options]... file... -c:创建归档,须配合-f使用 -x:展开归档,须配合-f使用,跟-C可以将归档文件展开至指定位置 -t:查看归档文件中的文件列表,配合-f使用 -v:显示归档(展开)过程 -f:指定归档文件
(2)归档并压缩
-z:以gzip格式压缩,如下: tar -zvcf /PATH/TO/SOMEFILE.tar.gz files 创建归档并压缩文件 tar -zvxf /PATH/TO/SOMFILE.tar.gz 解压缩并展开归档 -j:以bzip2格式压缩 -J:以xz格式压缩
5、示例
打包压缩/etc/目录,然后解压展开到test目录中 [root@localhost ~]# tar -zvcf etc.tar.gz etc/ etc/ etc/fstab etc/crypttab ...... [root@localhost ~]# tar -zvxf etc.tar.gz -C test/ etc/ etc/fstab etc/crypttab .....
原创文章,作者:pao,如若转载,请注明出处:http://www.178linux.com/36387
评论列表(1条)
文章结构清晰,层次分明,图文并貌。对find的常用选项总结的也很详细,find命令是笔试中的一个重要的考点,希望课后能多加练习,进行好总结和梳理。