linux 文件查找
文本查找: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 文件查找相关推荐
- Linux文件查找之findlocate
Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令 ...
- Linux文件查找命令find,xargs详述
Linux文件查找命令find,xargs详述 总结:zhy2111314 来自:LinuxSir.Org 整理:北南南北 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量 ...
- Linux文件查找命令find用法整理(locate/find)
Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2 ...
- linux进入文件全文搜索命令,Linux 文件查找命令详解
大家好,我是"孤云幕雨":祝大家中秋快乐,今天给大家带来的是<Linux文件查找命令> 一.locate:依赖于事先构建的索引 v依赖于事先构建的索引:索引的构建是在系 ...
- linux 查找文件 locate,linux文件查找(find,locate)
文件查找: locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的: # updatedb, 手动生成文件数据库 速度快 find: 实时 精确 支持众多查找标准 遍历指定目录中的所有文件 ...
- Linux文件查找与tar包管理、企业级sed应用 软件包管理与编译安装httpd
总结 第7节 Linux文件查找与tar包管理.企业级sed应用 使用locate命令 使用find命令 压缩和解压缩工具 01-文件搜索 locate (00:02:30) locate test. ...
- linux检索docx内容,linux 文件查找和内容过滤命令.docx
linux 文件查找和内容过滤命令 linux 文件查找和内容过滤命令 grep.fgrep和egrep命令 这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出 ...
- linux文件查找命令find,locate
简介 vi : visual interface, 可视化接口.vim(VI IMproved) vim编辑器:文本编辑器.文本:纯文本,ASCII text; unicode; 文本编辑器种类: 行 ...
- Linux文件查找find和locate
目 录 第1章 locate文件查找 1 1.1 概述 1 1.2 locate文件查找的特性 1 第2章 文件查找概述 1 第3章 1 3.1 文件名查找 1 3 ...
- Linux文件查找工具之find “大宝剑”--转载
原文地址:http://xinzong.blog.51cto.com/10018904/1749465 一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法 ...
最新文章
- 技术 | Web前端开发(4)持续更新
- 计算机交换机配置实验心得,实验六 三层交换机的配置实验报告
- UA OPTI570 量子力学2 物质波与物质粒子
- 职场求生:老板说,解决不了用户流失,就要解决我,咋办?
- ps意外崩溃_充满意外的数学中考
- onvif 客户端 linux,Linux下onvif客户端关于ipc摄像头的搜索
- linux VIRT内存占太大,Java top VIRT 内存占用有关问题
- 洛谷 题解 P4955 【[USACO14JAN]Cross Country Skiing 越野滑雪】
- SAP 产品线中写法很接近,容易混淆的几个名称
- VMware Fusion虚拟机的低分辨率问题(亲测有效)
- 音量已经调到100%,如何再调整
- 新书上市|这套北大数学系青睐的数学科普书,又添新成员
- VCRedist.exe静默安装方法
- 微信表情图像代表什么意思_微信的表情都是什么意思(微信表情含义图解大全)...
- C#做一年小孩做一个口算题生成器
- 14.	Zigbee应用程序框架开发指南 - 睡眠设备
- mac+safari+html5插件,打开 Mac Safari 黑色模式,这款插件有点厉害
- InnoDB一棵B+树能存多少行数据?为什么要用B+树?而不是其他树?
- 为什么很多人上了研究生变得不快乐了?
- 《仙剑奇侠传3》全攻略
热门文章
- dev c++调试怎么看变量的值_DevC++ 安装教程
- matlab对文件夹的遍历
- rabbitmq多个消费者_选型必看:RabbitMQ 七夕 Kafka,差异立现
- php手动删除变量函数,PHP unset()函数销毁变量_PHP教程
- bpmn js 生成json_js处理的8种跨域方法
- unity3d shader 自定义光照函数
- 《精通软件性能测试与LoadRunner最佳实战》—第1章1.5节软件开发与软件测试的关系...
- 8.621 - Secret Research
- verilog语法学习心得
- Lady Gaga Feat. Colby O'Donis - Just Dance