Linux学习之文件搜索命令
一.文件搜索命令locate
locate 文件名
在后台数据库中按文件名搜索,搜索速度最快
/var/lib/mlocate
#locate命令所搜索的后台数据库(数据库不会实时刷新,所以新建的文件马上使用localte命令是无法搜索到的,更新频率大概一天一次)
updatedb
#更新数据库(更新后就可以使用locate命令进行搜索了)
- 缺点
1)只能搜索文件名
2)存在不搜索的文件或目录(可以使用vi /etc/updatedb.conf命令查看不搜索的部分有哪些,如图中不搜索的部分为yes那一行下面的所有内容,换句话说,打比方你在/tmp目录下创建了个文件,那么即使你updatedb后也是无法搜索到那个文件的)

二.命令搜索命令whereis与which
whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
-b:只查找可执行文件
-m:只查找帮助文件
限制条件:
只能搜索系统命令,不能搜索普通文件
which 命令
#搜索命令所在路径及别名
不是所有命令都有别名,所以使用which有时候会不显示别名

- 注意事项:
shell自带的内置命令使用which或whereis是无法查找到可执行文件的例如cd命令,只有外部命令才可以使用which和whereis来进行查找,之所以pwd、ls这种命令可以直接使用是因为linux自动为这些系统命令配置了环境变量。如果是我们自己写的程序如果想不打绝对路径就运行的话需要自己手动配置环境变量,就像windows那样
可以使用命令”echo $PATH”来查看环境变量

三.字符搜索命令find
find [搜索范围] [搜索条件]
#搜索文件
find / install.log #在/目录下遍历查找install.log文件
#避免大范围搜索,会非常消耗系统资源
|
选项 |
描述 |
例子 |
| -name | 按文件名搜索(区分大小写) | find /root –name install.log |
| -iname | 按文件名搜索(不区分大小写) | find /root –iname install.log |
| -user | 按所有者搜索(搜索属于所有者的所有文件) | find /root –user root |
| -nouser | 查找没有所有者的文件(搜索当前没有所有者的所有文件) 注意: 1./sys和/proc两个目录中如果存在没有所有者的文件请不要手动清除,因为他可能是内核直接产生的文件,内核直接产生的文件不一定会存在所有者 2.外来文件,比如拿U盘从windows中copy到linux中的 3.除了以上两种情况,其他没有所有者的文件可以全部清除,基本都是垃圾文件 |
find /root –nouser |
| -mtime | 按修改时间查询文件 atime 文件访问的时间 ctime 修改文件属性的时间 mtime 修改文件内容的时间 |
find /var/log/ –mtime +10 #查找10天前修改的文件 -10 10天内修改的文件 10 10天当天修改的文件 +10 10天前修改的文件 |
| -size | 按文件大小查询 -a and 逻辑与,两个条件都满足 -o or 逻辑或,两个条件满足一个即可 -exec/-ok 命令 {}\; 对搜索结果执行操作,非常有用 |
find . –size 25k #当前目录查询文件大小是25kb的文件 -25k 小于25kb的文件 25k 等于25kb的文件 +25k 大于25kb的文件 find /etc –size +20k –a –size –50k find /etc –size +20k –a –size –50k –exec ls –lh {} \; |
| -inum | 按i节点查询文件(也就是ID号) | find . –inum 262422 #查找节点是26244的文件 |
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完美匹配,相当于是模糊查询例如:
|
通配符 |
描述 |
例子 |
| * | 匹配任意内容 | find /root –name “install.log*”(之所以加了引号是有可能不会识别通配符) |
| ? | 匹配任意一个字符 | find /root –name “ab?” |
| [] | 匹配任意一个中括号内的字符 | find /root –name “ab[cd]” |
四.字符串搜索命令grep
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
|
选项 |
说明 |
例子 |
| grep “size” test.txt 在test.台下听众搜索包含size这个字符串的行 |
||
| -i | 忽略大小写 | grep –i “size” test.txt 在test.台下听众搜索包含size这个字符串的行,不区分大小写 |
| -v | 排除指定字符串 | grep –v “size” test.txt 在test.台下听众搜索包不含size这个字符串的行 |
五.find命令与grep命令的区别
find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是万全匹配
grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式包时包含匹配
Linux学习之文件搜索命令的更多相关文章
- Linux学习日志--文件搜索命令
开头总结: 学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的差别和使用方法格式,什么是path环境变 ...
- 五、Linux学习之文件搜索命令
一.文件搜索命令locate locate 文件名 在后台数据库中按文件名搜索,搜索速度最快 /var/lib/mlocate #locate命令所搜索的后台数据库(数据库不会实时刷新,所以新建的文件 ...
- Linux 学习 (三) 文件搜索命令
Linux达人养成计划 I 学习笔记 locate 文件名 搜索速度比较快 只能根据文件名搜索 搜索的是保存在 /var/lib/mlocate 的数据库(每天更新一次) 新建文件需要执行 updat ...
- Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)
1.文件搜索命令:locate [文件名] 在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少 例子:locate test.txt,就会显示文件名包含 test.txt的所 ...
- [Linux] 013 其他文件搜索命令
1. 文件搜索命令:locate 命令名称:locate 命令所在路径:/bin/locate 执行权限:所有用户 语法:locate 文件名 功能描述:在文件资料库中查找文件 范例: $ locat ...
- Linux 学习 (二) 文件处理命令
Linux达人养成计划 I 学习笔记 ls [选项] [文件或目录] -a: 显示所有文件,包括隐藏文件 -l: 显示详细信息 -d: 查看目录属性 -h: 人性化显示文件大小 -i: 显示inode ...
- linux 学习2 文件处理命令
____命令格式与目录处理命令 ____目录处理命令 ____文件处理命令 ____链接命令 ls list 菜单 命令 [-选项][参数] 选项:调整功能,多个选项可以写在一起,不分顺序. 简化选项 ...
- linux中find文件搜索命令
find 解释 命令名称:find 命令所在路径:/bin/find 执行权限:所有用户 功能描述:文件搜索 语法 find [搜索范围] [匹配条件] 匹配条件: -name 文件名(区分大小写) ...
- linux笔记_文件搜索命令
一.locate命令 locate命令属于mlocate包,如果执行locate filename提示命令未找到执行安装mlocate包 # yum -y install mlocate 安装后执行l ...
随机推荐
- Linux下C语言实现ATM取款机,消息队列版本
链接:https://pan.baidu.com/s/1oBavXBuZul7ZAEBL1eYfRA 提取码:ffhg Mybank ATM取款机实验,消息队列实现本实验用的是Centos71.在服务 ...
- 原生JS实现图片循环切换
<!-- <!DOCTYPE html> <html> <head> <title>原生JS实现图片循环切换 —— 方法一</title&g ...
- java判断回文数
- Spring3.x 升级至 Spring4.x 详解
1 升级依赖包 1.1 Maven 项目 1.1.1 更新 spring 依赖版本 打开 pom.xml,把所有 spring3.x 的版本号更新为 spring4.x.建议使用属性配置,形如: &l ...
- python数据分析第二版:numpy
一:Numpy # 数组和列表的效率问题,谁优谁劣 # 1.循环遍历 import numpy as np import time my_arr = np.arange(1000000) my_lis ...
- rocketmq启动broker内存占用过大的问题
解决方法: 修改broker启动脚本runbroker.sh里面的jvm参数 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" ...
- MYSQL数据库类型与JAVA类型对应表
MYSQL数据库类型与JAVA类型对应表 MYSQL数据库类型与JAVA类型对应表 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型 索引(int) VARCHAR L+N VARCHA ...
- python 日期生成和时间格式化
记录下日期时间的转换和生成:1.这个是使用datetime 函数生成往后几天的时间,比如当前日期是2019-07-01 那么控制days=1然后再和当前的时间相加,就能得到明天的日期def time_ ...
- ht-3 linkedList特性
LinkedList内部封装的是双向链表数据结构,每个节点是一个Node对象. Node对象中封装的是要被添加的元素,还有一个指向上一个Node对象的引用和 指向下一个Node对象的引用 , 与Arr ...
- 51nod 1514 美妙的序列 分治NTT + 容斥
Code: #include<bits/stdc++.h> #define ll long long #define mod 998244353 #define maxn 400000 # ...