linux find命令

find搜索的格式: find +搜索范围+搜索条件

exp:find  / -name 文件名 避免在大范围搜索,会非常耗费资源

#find是在系统中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配的

#如果要进行模糊查询一定要加通配符

linux中的通配符:

*  带表匹配任意内容

? 匹配任意一个字符

【】 匹配任意一个中括号内的字符

find / -name “.......*” 注意加引号括起来

find可以支持 -iname 意思是不区分大小写,           linux是严格区分大小写的

find /root -iname +文件名

#不区分文件名的大小写

find  /root -user root

#按照所有者搜索  搜索用户为root 用户的目录

find /root -nouser

#查找没有所有者的文件(没有所有者的文件是垃圾文件,但是linux上有两个特殊情况,1、如果这个文件是内核产生的,内核直接调用,不需要经过系统目录,所以他产生的文件有可能没有所有者  2、外来文件,我的数据在widonws上建立的,如果拷到linux上,这个文件就没有所有者,windows忽略了所有者这个概念,一般的光盘,u盘,移动硬盘等的文件都属于外来文件)

find /var/log/ -mtime +10

#查找10天前修改的文件

-10     10天内修改的文件

10        10天当天修改的文件

+10        10天前修改的文件

atime        文件访问时间

ctime         改变文件属性

mtime 修改文件内容

find . -size 25k

#查找文件大小是25kb的文件

-25k         小于25kb的文件

25k           等于25kb的文件

+25k          大于25k的文件

k 小写 M必须是大写

.     带表当前目录

find . -inum 265

#查找i节点是252422的文件

系统查找文件不是靠文件名而是通过inum节点去查找的              ls  -i可以查找文件的i节点

find /etc -size +20k -a -size -50k

 

查找范围

#查找/etc/目录下,大于20kb并且小于50kb的文件

-a and 逻辑与,两个条件都满足

-o or 逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh {}\;

#查找/etc目录下,大于20kb并且小于50kb的文件并显示详细信息

#-exec/-ok 命令{}\;对搜索结果并执行操作

-exec    命令      {}\;是一个标准格式,是把前面执行的结果交给后面的命令去执行

find 与grep的区别

grep 是搜索字符串的命令 grep + 选项 + 字符串+ 文件名  字符串要用引号

grep -i 是不区分大小写

grep -v 排除指定字符串

grep命令是在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式的包含匹配而find是在系统中搜索符合条件的文件,如果需要匹配,使用通配符进行匹配

find 是完全匹配而grep 是包含匹配, 完全匹配就是搜索到的必须跟他要搜索的一模一样,而包含匹配是只要包含就可以搜索到

posted @ 2017-09-18 17:00  whssup  阅读(598)  评论(0编辑  收藏  举报