linux中的文件搜索命令
一、locate命令
是在后台数据库中按文件名搜索(也只能按文件名搜索),搜索速度较快
这个数据库的目录,不同的linux发行版不同,在centos6.10中,这个数据库的目录为:/var/lib/mlocate/mlocate.db
这个数据库默认一天一更新,所以一般新建的文件,如果不手动更新该数据库,在该天内是无法使用locate命令来查看文件位置的,更新该数据库的命令为:updatedb # 需要使用root权限才能生效
另外locate搜索是一种类似于模糊搜索:
还有在/etc/updatedb.conf配置文件中会过滤掉一些搜索路径,即在那些路径中的文件用locate命令无法搜索,实例如下:
二、whereis及which命令
这两个命令用来搜索命令的路径(也遵循/etc/updatedb.conf配置文件的筛选规则)
whereis 命令名 #搜索命令所在路径及帮助文档所在位置
选项:
-b:只查找可执行文件
-m:只查找帮助文件
which 命令名 #查找命令是否存在,以及命令的存放位置在哪儿
在centos7.0中能够找到cd命令的路径,6.10中没有。
linux中要想使某个命令在任何目录下都能执行,可以像windows一样将该命令的路径添加到环境变量PATH下:
其中,各个搜索路径是用冒号分隔的。
三、find命令
find命令是用来在给定的目录下查找符合给定条件的文件
find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
一、OPTIONS参数
-P、-L、-H:控制软连接的对待方式,用的不多。不介绍了
二、查找路径
就是个目录路径,相对和绝对都可以。
三、查找条件
(一)、根据名称查找
-name "PATERN"
-iname "PATERN" :不区分名称字母大小写
如果要根据通配符进行模糊查找,需要查找的文件名要用引号括起来(双引号与单引号均可以)
linux中的常用通配符有:
*表示匹配任意内容
?表示匹配任意一个字符
[]表示匹配任意一个中括号内的字符
(二)、根据文件从属关系查找:
-user USERNAME:查找属主指定用户的所有文件;
-group GRPNAME:查找属组指定组的所有文件;
-uid UID:查找属主指定的UID的所有文件;
-gid GID:查找属组指定的GID的所有文件;
-nouser:查找没有属主的文件;
-nogroup:查找没有属组的文件;
(一般来自Windows中的文件及linux系统内核的文件比如文件夹/sys及/proc下的文件一般有没有属主和属组的文件,这两部分的文件不要随便删除,其余的没有属主的文件可以看做垃圾文件,可以删除)
(三)、根据文件的类型查找:
-type:根据不同的文件类型筛选
f | 普通文件 |
d | 目录文件 |
l | 符号链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
s | 套接字文件 |
(四)、 根据时间戳查找:
按照atime(文件的最后访问时间)、mtime(文件的最后修改时间)、ctime(文件最后改变时间)三个变量来查询:以天为单位,
find /var/log/ -mtime +10
#查找10天前修改的文件
(五)、按文件大小搜索
find 路径 -size 文件大小(单位为:k,M,G)
其中+2M表示大于2M的文件,-2M表示小于2M的文件,2M表示等于2M的文件
多条件查询:
find /etc -size +20k -a -size -50k #查找/etc/目录下,大于20KB并且小于50KB的文件
-a表示and 逻辑与,两个条件都满足
-o表示逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
# 查找/etc/目录下,大于20KB并且小于50KB的文件,并且显示详细信息
# -exec COMMAND {} \; 对查找到的每个文件执行由COMMAND表示的命令;
(六)按文件的inode结点号来查找文件
find 路径 -inum 文件的inode节点号
注意:查找目录时,所罗列的文件号(ls -li命令)列出的是目录下的文件或文件夹的inode号。
(七)根据文件的权限来查找
find 路径 -perm mode #实现的是精确匹配find 路径 -perm -mode #完全包含此mode时才可以匹配(转换为权限字符r,w,x后再比较)find 路径 -perm /mode #任何一位匹配即可(即所有者,所属组,其他人权限中的一位)
实例:
首先准备几个文件
首先来看:find ./ -perm 664
可见这是一种精确匹配,需要所有者,所属组,其他人三者相对应的位置的权限数字或者说权限字母完全对应一致才行
再来看find ./ -perm -660
可见,只要文件权限包含所有者及所属组均可读可写即可匹配,从上面的权限字母也很容易看出(rw-rw-r--包含rw-rw----),从权限数字来看(664包含660)
再来看find ./ -perm /660
“-perm /mode”和“-perm -mode”之间的区别就好理解了。“-perm /mode”要求所匹配的权限之间是“或”的关系,“-perm -mode”则要求所匹配的权限之间是“与”的关系。也就是说,“-perm /660”表示所有者或所属组任何一个具有写权限就可以,而“-perm -660”则表示所有者和所属组必须同时具有写权限。
详细内容请参考:
对find命令按权限查找的进一步理解
四、grep命令
grep [选项] 字符串 文件名 # 在文件中匹配符合条件的字符串
选型:-i: 忽略大小写-v: 排除指定字符串
grep是在文件中查找符合条件的字符串,而不是寻找文件,grep是包含匹配,不像find的那样的完全匹配。
另外,grep命令常结合linux管道原理进行二次查找操作,如下所示:
find命令与grep命令的区别
- find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
- grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配
linux中的文件搜索命令相关推荐
- 【Linux】Linux中的文件搜索和查看
Linux中的文件搜索和查看 Linux中的文件搜索和查看 cat head tail more less grep sed vim Linux中的文件搜索和查看 cat cat 命令用于连接文件并打 ...
- linux查看文件位置命令bwd,linux 操作系统中find文件搜索命令的使用
文件搜索命令是:find 命令所在路径是:/bin/find 执行权限:所有用户 语法:find [搜索范围] [匹配条件] 范例: find /etc -name init 这个是比较精准的要找文 ...
- linux中删除文件的命令
在Linux中有很多方法可以删除目录,在图形化界面可以利用文件管理器,或者通过终端删除.本文将介绍在文本界面使用命令删除目录. 在Linux中有很多方法可以删除目录,在图形化界面可以利用文件管理器,或 ...
- LINUX中删除文件的命令是什么,linux 中删除 文件的命令是什么?
linux下删除文件的命令是rm:以下分两种介绍删除方法:对于目录文件的删除:#rf-rffilename对于非目录文件的删除:#rffilename之所以对于目录文件的删除加上了强制参数是因为在li ...
- Linux中的文件搜索 locate,find,grep ,whereis和which命令的使用
1.文件搜索locate Linux locate命令用于查找符合条件的文档,它会去保存文档和目录名称的数据库mlocate内,查找合乎范本样式条件的文档或目录.一般情况我们只需要输入查找指定文件名字 ...
- linux中下载文件的命令
2019独角兽企业重金招聘Python工程师标准>>> 1 wget wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径 例如 ...
- Linux中有关文件的命令总结(查看、编辑、压缩、配置)
目录 一.文件查看命令 二.文件编辑命令 1.vim的三种模式 2.vim/vi 中常用命令 3.末行模式下的操作 三.文件压缩.解压命令 四.配置文件 1.什么是配置文件? 2.配置文件的设置方法 ...
- 使用linux命令上传文件,Linux中常用文件传输命令及使用方法
sftp sftp即Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中 ...
- linux 函数 文件校验,Linux中的文件效验命令
在网络传输.设备之间转存.复制大文件等时,可能会出现传输前后数据不一致的情况.这种情况在网络这种相对更不稳定的环境中,容易出现.那么校验文件的完整性,也是势在必行的. md5sum命令用于生成和校验文 ...
- linux笔记_文件搜索命令
一.locate命令 locate命令属于mlocate包,如果执行locate filename提示命令未找到执行安装mlocate包 # yum -y install mlocate 安装后执行l ...
最新文章
- 卷积神经网络模型可解释性
- ajax 导出文件给 文件重新命名_Tanner LEdit 05 | 导出GDSII文件
- java 拼音模糊查询_java实现首字母模糊查询的功能
- Python中的判断语句及循环
- PopupMenu控件的使用
- alien指令 linux,使用alien命令让deb包和rpm包互相转换
- php设计模式在框架中的应用,关于设计模式在实际场景中的应用
- 产品经理之深度学习促进产品之分类(三)
- 【学术篇】2.28测试T2 线段 拓扑排序
- Spring基础18——通过注解配置bean之间的关联关系
- memcache 源码分析之开场白
- REFPROP导出温熵数据绘图
- XML 教程(一文彻底搞懂XML)
- dwg格式转换pdf
- 永续公债(or统一公债)的麦考利久期(Macaulay Duration)的计算
- 微信网站域名如何做防封和防屏蔽技术
- win7升级win10正式版_如何在win7系统中升级win10
- c语言程序设计1253,1253c语言程序设计a(2010年1月)
- 悼念:黑白素色网页背景设置教程
- 【数据结构】广义表的介绍
热门文章
- 乘法鉴相器的matlab仿真,Matlab中基于dq变换的锁相环仿真研究
- virtualBox经常报错“内存不能为written”解决方法
- 向安装包中添加设备 UDID. 蒲公英内测
- 机器学习(二)简单逻辑回归python算法+代码(实例:体检阳性阴性预测患不患病)
- DSQLTools的使用——合天网安实验室学习笔记
- 解决excel里面“取消隐藏”是灰色的问题
- 游戏外挂基本原理及实现
- MacBook安装虚拟机Parallels Desktop
- Kattis - hoppers Hoppers(判奇环)
- 我的车辆过户办理经历分享(深圳市内过户)