Linux下的find指令详解
2016-05-24 15:28
405 查看
在Linux下有很多查找指令:
locate
whereis
which
find
在这些查找指令中功能最强大的当属find指令了。find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。所以在本片博客中主要讨论find命令。
(一)find命令的格式:find 路径 -命令参数 [输出形式];
路径:所要搜索的目录及其所有子目录。默认为当前目录。
命令参数:要查找文件的特征。如果参数为空则返回当前目录及子目录下的所有文件650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/28/wKiom1c5g2jwFZb6AABOLeZsEV4929.png" title="find.PNG" alt="wKiom1c5g2jwFZb6AABOLeZsEV4929.png" />
(二)find命令的常用参数:
根据文件名或正则表达式匹配搜索:
使用-name参数指定文件名必须匹配的字符串:(-name之前的.可加可不加)
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/80/25/wKioL1c5hsTxdz6PAAA8YMH_SI0556.png" title="捕获1.PNG" alt="wKioL1c5hsTxdz6PAAA8YMH_SI0556.png" />
具有条件限制的查找:
-a 与条件
-o 或条件
-not 非条件(此参数的功能类似于否定参数‘!’)
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/80/29/wKiom1c5iPnCGWs7AABIvIEeEHs686.png" title="捕获2.PNG" alt="wKiom1c5iPnCGWs7AABIvIEeEHs686.png" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/80/29/wKiom1c5i5ahciREAAAPOokDs9M507.png" title="捕获4.PNG" alt="wKiom1c5i5ahciREAAAPOokDs9M507.png" />
{}就是将find找到的内容放到{}中去。
本文出自 “稻草阳光” 博客,请务必保留此出处http://helloleex.blog.51cto.com/10728491/1774010
locate
whereis
which
find
在这些查找指令中功能最强大的当属find指令了。find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。所以在本片博客中主要讨论find命令。
(一)find命令的格式:find 路径 -命令参数 [输出形式];
路径:所要搜索的目录及其所有子目录。默认为当前目录。
命令参数:要查找文件的特征。如果参数为空则返回当前目录及子目录下的所有文件650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/28/wKiom1c5g2jwFZb6AABOLeZsEV4929.png" title="find.PNG" alt="wKiom1c5g2jwFZb6AABOLeZsEV4929.png" />
(二)find命令的常用参数:
根据文件名或正则表达式匹配搜索:
使用-name参数指定文件名必须匹配的字符串:(-name之前的.可加可不加)
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/80/25/wKioL1c5hsTxdz6PAAA8YMH_SI0556.png" title="捕获1.PNG" alt="wKioL1c5hsTxdz6PAAA8YMH_SI0556.png" />
具有条件限制的查找:
-a 与条件
-o 或条件
-not 非条件(此参数的功能类似于否定参数‘!’)
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/80/29/wKiom1c5iPnCGWs7AABIvIEeEHs686.png" title="捕获2.PNG" alt="wKiom1c5iPnCGWs7AABIvIEeEHs686.png" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/80/29/wKiom1c5i5ahciREAAAPOokDs9M507.png" title="捕获4.PNG" alt="wKiom1c5i5ahciREAAAPOokDs9M507.png" />
-path 这个参数用于将整个路径作为一个整体进行匹配。-exec与“\;”之间的内容就是要进行的额外内容。find /home -path "*.c"
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/80/26/wKioL1c5i8rxWITOAAAMzUAlWYM167.png" title="捕获3.PNG" alt="wKioL1c5i8rxWITOAAAMzUAlWYM167.png" />设定find命令在子目录中遍历的深度参数:
-maxdepth
-mindepth
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/80/26/wKioL1c5jl-izdGCAAANAEhXncQ804.png" title="捕获4.PNG" alt="wKioL1c5jl-izdGCAAANAEhXncQ804.png" />根据文件类型搜索: 文件类型 类型参数 普通文件 f 符号文件 l 目录 d 字符设备 c 块设备 b 套接字 s 管道文件 p 650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/80/29/wKiom1c5jxnSV2tJAAANLRtsf30706.png" title="捕获4.PNG" alt="wKiom1c5jxnSV2tJAAANLRtsf30706.png" />[code]find -type l //查找此目录及子目录以下的所有符号文件 find -type f //普通文件字符设备文件,块设备文件,套接字文件,管道文件可以到根目录下查找:(cd /)
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/80/29/wKiom1c5kPnQbBqcAABZ5xF3ZOA874.png" title="捕获4.PNG" alt="wKiom1c5kPnQbBqcAABZ5xF3ZOA874.png" />根据文件时间进行查找:
linux文件系统中的每个文件都有三种时间戳:
1. 访问时间(atime——access time):就是上次访问这个文件的时间。
2. 改变时间(ctime——change time):就是文件的inode改变的时间(什么是inode?)当你往一个文件中添加数据或者删除数据的时候,修改文件所有者的时候,链接改变的时候,文件的ctime就会发生改变。
3. 修改时间(mtime——modification time):就是文件的内容上一次发生改变的时候的时间。-atime,-ctime,-mtime可作为find的时间参数,单位是天。还有基于“分钟”的,-amin,-mmin -cmin。这些值通常还带有+或-:+表示大于,-表示小于。 -newer参数,我们可以指定一个用于比较时间戳的参考文件,然后找出比参考文件更新的所有文件。 650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/80/26/wKioL1c5lMaSL-pFAAAhzkDry2g300.png" title="捕获3.PNG" alt="wKioL1c5lMaSL-pFAAAhzkDry2g300.png" />[code]find -type f -newer test4 //查找当前目录及子目录下比test4更新的文件基于文件大小的查找
-size参数
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/80/29/wKiom1c5lPrRWvu9AAAdyGOvcSY055.png" title="捕获3.PNG" alt="wKiom1c5lPrRWvu9AAAdyGOvcSY055.png" />基于文件权限和文件所有人的查找 -perm 按照文件权限查找 -user (或者是-uid n n是用户账号的ID) 按照文件所有人查找 -group (或者是-gid n n是组名的ID)按照文件的所属组查找 650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/80/29/wKiom1c5li6QDogwAAAQM_344_k290.png" title="捕获3.PNG" alt="wKiom1c5li6QDogwAAAQM_344_k290.png" /> 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/80/27/wKioL1c5l5qTheFYAAAUJPwAuuA667.png" title="捕获3.PNG" alt="wKioL1c5l5qTheFYAAAUJPwAuuA667.png" /> [code]find -type f -perm 664 //查找权限为664的普通文件 find -type f -perm +664 //查找权限为大于664的普通文件 find -type f -user lee //查找所有人为lee的普通文件 find -type f -uid 2 //查找所有人为账号ID为2的普通文件结合find执行命令或动作
-exec find命令最强大的参数之一find与xargs结合使用 xargs参数 将标准输入转换成命令行参数 650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/80/27/wKioL1c5nAayxZZ-AAAMzgTaNJQ787.png" title="捕获3.PNG" alt="wKioL1c5nAayxZZ-AAAMzgTaNJQ787.png" />find -type f -name "*.txt" -print0 |xargs -0 rm -f #将匹配到的文件删除,xargs -0将 \0作为输入定界符。 find -type f -name "*.c" -print0 | xargs -0 -l #统计所有c程序文件的行数额外可进行的动作参数
-exec参数 参数后面跟的命令就是所要进行的额外动作
例如:
find -type f /home -perm -1000 -exec ls -l{}\; //找出文件权限小于1000的普通文件使用ls -l显示出来
{}就是将find找到的内容放到{}中去。
本文出自 “稻草阳光” 博客,请务必保留此出处http://helloleex.blog.51cto.com/10728491/1774010
相关文章推荐
- Linux下C程序的链接过程
- 配置Linux内核支持yaffs2文件系统---基于S5PV210
- linux内核细节- typeof、offsetof、container_of
- centos 6.5 源码安装MySQL-5.10.16和root 账号密码设置
- linux下popen的使用心得
- 【Linux】NAT模式下关于主机ping不通虚拟机的问题
- centos6.6关闭防火墙和selinux
- 大数据技术基础-- Linux文件系统结构
- linux下关系型数据库解释及mysql基本命令详解
- Sublime Text 3设置Tab自动转换为空格
- linux基础命令学习 (八)磁盘空间
- linux 混杂设备miscdevice
- Linux里如何查找文件内容
- 在linux下用多线程来构建web服务器.
- 【Linux】tree命令
- linux文件读写 文件锁、select、poll
- CentOS搭建php运行环境
- CentOS7升级内核到最新版本
- Linux kernel中断子系统之(五):驱动申请中断API【转】
- 关于linux下关于ssd的使用