文本查找利器find的使用

一、find概述;
作为Linux系统运维人员来说find命令也是较长用的一个命令,个人觉得也是最有用的一个,同时也 是最混乱的一个。因为它的语法与其他命令的标准语法不同,同时也支持grep里面的通配符查找。也可以允许按文件名,文件类型,用户甚至是时间戳查找。不但可以找到具有这些属性任意组合的文件,还可以对它找到的文件执行操作。

功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。
语法:find 起始目录 寻找条件 操作
说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

二、find命令的格式;
find [options] [查找路径] [查找条件][处理动作]
  默认的处理动作是显示

查找路径;默认查找当前目录

查找条件;默认查找指定路径下的所有文件

处理动作;默认为显示

find常用选项

选 项   功能作用  
-name   “文件名称”;支持使用文件名通配机制 *、?、[]、[^]  

-iname

  -iname “文件名称”;查找是不区分字符大小写  
-uid   根据给定的uid查找所有文件  
-gid   根据给定的gid查找所有文件  
-user   根据属主查找文件  
-group   根据组名查找文件  
-nouser   查找没有属主的文件  
-nogroup   查找没有属组的文件  
-a,-o   -a表示为与,同时满足。-o表示或,满足查找条件即可  
-type  

查找某一类型文档;

b;块设备文档、d;目录、c;字符设备文档、

l;符号链接文档、f;普通文档

 
-prune   不在当前指定的路径查找。假如同时指定了-depth选项,则prune被忽略  
-empty   查找大小为0的目录或文件  
-size   根据文件大小查找 常用单位有;K、M、G  
-depth   查找是,首先查找当前目录文档,然后在找子目录查找  
-exec   对匹配的文档执行所给的命令 {}占位符  
-ok   交互式的-exec; 用于指定其他命令的 {}占位符  
-ls   长格式输出各文件信息  
-print   打印在标准输出上  
-mtime -n,+n   按照文档更改时间查找。 -n指距离现在时间n天以内;+n 指n天以外  
-atime   +,指定天数之外被访问过 -,是指定天数之内被访问过  
-fstype f1,f2   查更改时间比f1新但比f2旧的文档  
-perm   按权限来查找  

find示例
1、 -name
  按文件名查找以.conf结尾的文件,两个结合了通配符查找
[root@station103 ~]# find /etc -name "*.conf"  #按文件名查找
/etc/sasl2/smtpd.conf
/etc/openldap/ldap.conf
/etc/lftp.conf
/etc/mtools.conf
/etc/NetworkManager/NetworkManager.conf
/etc/ld.so.conf
/etc/plymouth/plymouthd.conf

1234567 [root@station103 ~]# find /etc -name "???.conf"
/etc/yum.conf
/etc/gai.conf
/etc/sos.conf
/etc/samba/smb.conf
/etc/init/tty.conf
/etc/init/rcS.conf

2、-iname
  文件名不区分大小写查找

[root@station103 tmp]# find -iname "*.txt"    不区分大小写查找
./KKG.txt
./aa.txt
./nba.txt
./QW.txt
./hao.txt
./abc.txt
./dW.txt
./hddW.txt

3、-uid
  根据uid查找

[root@station103 tmp]# find -uid 517
./kd.txt
./ii.txt
./oo.doc

4、-gid
  根据gid查找

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/18579.html