find 命令 find 【搜索范围】 【搜索条件】php
例如: find / -name install.log 意思:在根目录下查找文件名为install.log的文件。windows
注意:服务器
1. 在生产服务器上应避免这种大范围的搜索,会很是耗费系统资源。spa
2. find搜索的文件名必须是如出一辙的才能找到,要想进行模糊搜索,就要使用通配符,可以识别的通配符有三种,分别是: * ? [] (这三个通配符的功能和做用貌似在各类语言中都是通用的,详细介绍请参考博文:http://my.oschina.net/woshixiaomayi/blog/507939)
.net
find命令的三个经常使用选项:blog
-iname 不区分大小写查找 如: find /root -iname install.log
ci
-user 按照全部者搜索(不太经常使用) 如: find /root -user root 全部者是root的文件有哪些
资源
-nouser 搜索没有全部者的文件(这个很实用) 如: find /root -nouser 解释一下哈:通常来讲,没有全部者的文件就是垃圾文件,可是有两个特殊状况须要特别注意一下:
开发
1. 由内核产生的无全部者文件,是很重要的,不能删除,例如:根目录下的proc,sys两个目录中的文件。
字符串
2. 外来文件,如:U盘,光盘等从windows中拷贝而来的文件。window中不是没有全部者这个概念,而是由于它忽略了这个概念。
find 按照文件修改时间查找
find /var/log -mtime +10 查找10天前修改的文件
选项: -atime 文件访问时间
-ctime 改变文件属性的时间
-mtime 修改文件内容的时间
时间段介绍: -10 10天之内修改的文件
10 第10天当天修改的文件
+10 10天之前修改的文件
过去的时间段知道怎么表示了,那么将来10天怎么表示呢?你开玩笑的吧!知道将来的事,我就去买彩票了,谁还在这里写博客……
find 按照文件大小查找 find . -size 25k 查找当前目录下文件大小等于25k的文件。
-25k 小于25k的文件
25k 等于25k的文件
+25k 大于25k的文件
注意:按照文件大小查找的时候有个要点,值得注意一下,否则会出错:kb的时候必定要小写,如25k;mb的时候必定要大写,如:25M。唉,Linux的开发人员也是逗咱们玩……
经过i节点查找文件 find /root -inum 123456 其实,这个命令跟ls -i 命令有些互补,前者能够经过i节点查找文件名,后者是经过文件名查看i节点。
find 命令还可使用逻辑判断
find /etc -size +20k -a -size -50k
含义:查找/etc文件下大于20k而且小于50k的文件。逻辑与,两个条件必须都要知足。
find /etc -size +20k -o -size -10k
含义:查找/etc文件下大于20k或者小于10k的文件。逻辑或,两个条件知足其中一个便可。
下面说一个重要的知识点:
find /etc -size +20k -a -size -50k -exec ls -lh {}\
含义: 查找/etc文件下大于20k而且小于50k的文件,而且把查询到的文件,以长格式和人性化文件大小显示出来。
固定格式 -exec <命令> {}\ 这里的命令,是对以前查询出来的结果的操做。
再例如: find /etc -size +20k -a -size -50k -exec rm -rf {}\ 将查找出来的文件删除,很方便吧,假如查找出来10000个文件,不会这个命令,就等着哭吧,可是有了这个命令就会so easy,老板不再怕你删不完文件。
grep命令
grep 【选项】 字符串 文件名 在文件当中匹配符合条件的字符串
选项: -i 忽略大小写 -v 排除指定字符串(至关于反选)
如: grep ‘hello world’ abc.php 在abc.php中查找包含了hello world的行并返回。
那么总结一下,find和grep的区别:
find命令:在系统当中搜索,符合条件的文件名。
grep命令:在文件当中搜索,符合条件的字符串。
学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog