文本查找:grep egrep fgrep

文件查找:locate、find

locate和find的区别

locate有自维护的数据库(linux自建,与所有文件关联),每天linux会定时对其进行更新,而locate就在此数据库中查找,所以查询速度非常快,但是缺点也很明显,不能实时查找(比如刚装linux时这条命令是不能用的),支持的查找方式少。

find的优点和缺点与locate相对应,find 遍历指定的路径,用以查找文件,所以当指定路径下的文件数量越多,find的查找效率越低,但是find 支持查找的格式非常多,比如根据文件名查找,元属性状态查找,还支持正则等等。

locate:

非实时,模糊匹配,查找是根据全系统文件数据库进行的;

速度快

#updatedb,手动生成文件数据库

find:

实时

精确

支持众多查找标准

遍历指定路径中的所有文件进行查找,速度慢

find  查找路径 查找标准  查找到以后的操作

查找路径:默认为当前路径

查找(匹配)标准:默认为指定路径下的所有文件

处理操作:默认为显示

匹配标准:

-name ‘filename’:对文件名进行精确匹配

文件名通配:

*:任意长度的任意字符

?:单个长度的任意字符

[]:

...

-iname  ’filename‘  匹配时忽略大小写

-regex pattern  :基于正则表达式对文件进行匹配

pattern必须用绝对路径包含

-user  username:根据属主查找

-group groupname:根据属组查找

-uid  UID:根据uid查找

-gid  GID:根据gid查找

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

-type:

p:普通文件

s:socket文件

d:目录文件

p:管道文件

l:链接文件

...

-size

[+|-]#k:查找[大于|小于]#k的文件

[+|-]#M:查找[大于|小于]#M的文件

[+|-]#G:查找[大于|小于]#G的文件

注意:find 命令里面查找文件大小并不是精确的,它会把大于上一个数到小于下一个数之间的数当成当前数,比如我们查找等于10k的文件,那么9.2k、9.31k、10.1k等等都会被当成10k而被匹配到,而9k 11.1k等就不会

组合条件:

-a:与

-o:或

-not:非

-mtime:根据修改(modify)时间

-atime:访问(access)时间

-ctime:改变(change)时间

[+|-]#:+代表某个时间之前,-代表之后,time默认是天

(atime和ctime区别:atime修改数据,ctime修改元属性)

-mmin:

-cmin:

-amin:

[+|-]#:

与time对应,min代表分钟

-perm MODE:完全匹配mode,比如755必须完全匹配755

/MODE:部分匹配mode,只要一个匹配就可以了,比如r--rw----,只要这三个位置中其他一个被匹配到就可以了,比如可以匹配的有:r--------、rw-------等等

-MODE:完全包含匹配,匹配的mode必须等于或者可以包含MODE,比如r--rw----,那么r--rwx---、rw-rw----等可以匹配,而---rwxrwx、rwxr-xrwx等不可以匹配

find 利用正则匹配示例:

[root@logstash ~]# find  /etc/  -regex "\<pas.*"

[root@logstash ~]# find  /etc/  -regex "/etc/\<pas.*"

/etc/passwd

/etc/passwd-

处理操作:

-print:显示

-ls:类似ls -l的格式显示匹配到的文件的详细信息

-ok COMMAND {} \;每一次操作都需要用户确认

-exec COMMAND {} \;

{}代表匹配到的文件,\;是固定结束符

xargs与find -exec示例

[root@localhost ~]# find  /tmp/ -size -1M   -exec echo {} >>tmp.txt  \;

[root@localhost ~]# cat tmp.txt

/tmp/mysql.sock

/tmp/sess_e538a6cd81b0fed9d5c49f1b2f84dd80

/tmp/sess_c1f3bd3446ca4407d9a2a05bb4897030

[root@localhost ~]# find  /tmp/ -size -1M  |xargs echo {} >>tmp1.txt ;

[root@localhost ~]# cat tmp.txt

/tmp/mysql.sock

/tmp/sess_e538a6cd81b0fed9d5c49f1b2f84dd80

/tmp/sess_c1f3bd3446ca4407d9a2a05bb4897030

[root@localhost ~]#

示例:

1、查找/var下属主为root并且属组为mail的所有文件

find /var/  -user root  -group mail

2、查找/usr不属于root、bin或student的文件

find  /usr/ -not -user root -o -not -user bin -o -not  -user student

find  /usr/ -not \(-user root -o  -user bin -o -user student \)

3、查找/etc下最近一周内内容修改过且不属于root以及student用户的文件

find /etc/ -mtime -7  -not -user root -a  -not  -user student

find /etc/ -mtime -7 -not \(-user root -o -user student\)

4、查找当前系统上没有属组或属主且最近1天内曾被访问过的文件、并将其属主属组修改为root

find  /  -nouser -o  -nogroup -a -ctime -1 -exec chown  root:root {} \;

5、查找/etc/下大于1M的文件,并写入到/tmp/1.txt中

find  /etc/  -size +1M  -exec echo {} >>/tmp/1.txt \;

6、查找/etc/所有用户都没有写权限的文件,并显示其详细信息

find  /etc/ -not -perm /222 -ls

注意这里是用/222  而不是-222

本文转自biao007h51CTO博客,原文链接: http://blog.51cto.com/linzb/1735061,如需转载请自行联系原作者

linux 文件查找相关推荐

  1. Linux文件查找之findlocate

    Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令 ...

  2. Linux文件查找命令find,xargs详述

    Linux文件查找命令find,xargs详述 总结:zhy2111314 来自:LinuxSir.Org 整理:北南南北 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量 ...

  3. Linux文件查找命令find用法整理(locate/find)

    Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2 ...

  4. linux进入文件全文搜索命令,Linux 文件查找命令详解

    大家好,我是"孤云幕雨":祝大家中秋快乐,今天给大家带来的是<Linux文件查找命令> 一.locate:依赖于事先构建的索引 v依赖于事先构建的索引:索引的构建是在系 ...

  5. linux 查找文件 locate,linux文件查找(find,locate)

    文件查找: locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的: # updatedb, 手动生成文件数据库 速度快 find: 实时 精确 支持众多查找标准 遍历指定目录中的所有文件 ...

  6. Linux文件查找与tar包管理、企业级sed应用 软件包管理与编译安装httpd

    总结 第7节 Linux文件查找与tar包管理.企业级sed应用 使用locate命令 使用find命令 压缩和解压缩工具 01-文件搜索 locate (00:02:30) locate test. ...

  7. linux检索docx内容,linux 文件查找和内容过滤命令.docx

    linux 文件查找和内容过滤命令 linux 文件查找和内容过滤命令 grep.fgrep和egrep命令 这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出 ...

  8. linux文件查找命令find,locate

    简介 vi : visual interface, 可视化接口.vim(VI IMproved) vim编辑器:文本编辑器.文本:纯文本,ASCII text; unicode; 文本编辑器种类: 行 ...

  9. Linux文件查找find和locate

    目 录 第1章 locate文件查找    1 1.1 概述    1 1.2 locate文件查找的特性    1 第2章 文件查找概述    1 第3章    1 3.1 文件名查找    1 3 ...

  10. Linux文件查找工具之find “大宝剑”--转载

    原文地址:http://xinzong.blog.51cto.com/10018904/1749465 一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法 ...

最新文章

  1. 技术 | Web前端开发(4)持续更新
  2. 计算机交换机配置实验心得,实验六 三层交换机的配置实验报告
  3. UA OPTI570 量子力学2 物质波与物质粒子
  4. 职场求生:老板说,解决不了用户流失,就要解决我,咋办?
  5. ps意外崩溃_充满意外的数学中考
  6. onvif 客户端 linux,Linux下onvif客户端关于ipc摄像头的搜索
  7. linux VIRT内存占太大,Java top VIRT 内存占用有关问题
  8. 洛谷 题解 P4955 【[USACO14JAN]Cross Country Skiing 越野滑雪】
  9. SAP 产品线中写法很接近,容易混淆的几个名称
  10. VMware Fusion虚拟机的低分辨率问题(亲测有效)
  11. 音量已经调到100%,如何再调整
  12. 新书上市|这套北大数学系青睐的数学科普书,又添新成员
  13. VCRedist.exe静默安装方法
  14. 微信表情图像代表什么意思_微信的表情都是什么意思(微信表情含义图解大全)...
  15. C#做一年小孩做一个口算题生成器
  16. 14. Zigbee应用程序框架开发指南 - 睡眠设备
  17. mac+safari+html5插件,打开 Mac Safari 黑色模式,这款插件有点厉害
  18. InnoDB一棵B+树能存多少行数据?为什么要用B+树?而不是其他树?
  19. 为什么很多人上了研究生变得不快乐了?
  20. 《仙剑奇侠传3》全攻略

热门文章

  1. dev c++调试怎么看变量的值_DevC++ 安装教程
  2. matlab对文件夹的遍历
  3. rabbitmq多个消费者_选型必看:RabbitMQ 七夕 Kafka,差异立现
  4. php手动删除变量函数,PHP unset()函数销毁变量_PHP教程
  5. bpmn js 生成json_js处理的8种跨域方法
  6. unity3d shader 自定义光照函数
  7. 《精通软件性能测试与LoadRunner最佳实战》—第1章1.5节软件开发与软件测试的关系...
  8. 8.621 - Secret Research
  9. verilog语法学习心得
  10. Lady Gaga Feat. Colby O'Donis - Just Dance