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 ...
随机推荐
- MT41J256M16HA-125 原厂订购 现货销售
作为一家科研公司,保证芯片的原厂品质和正规采购渠道是科学严谨的研发工作中重要的一环,更是保证研发产品可靠.稳定的基础.而研发中所遇到的各种不可预测的情况更是每个工程师向技术的山峰攀登中时会遇到的各种难 ...
- 树——sum-root-to-leaf-numbers(根到叶节点数字之和)
问题: Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a numb ...
- tac 反向显示文件内容
1.命令功能 tac是cat的反向拼写,功能是反向显示文件内容. 2.语法格式 tac option file 3.使用范例 [root@localhost chu]# cat test.txt ...
- ps:点阵格式图像
我们所看到的图像,究竟是如何构成的呢?这就需要涉及到图像类型的概念. 电脑中的图像类型分为两大类,一类称为点阵图,一类称为矢量图. 点阵图顾名思义就是由点构成的,如同用马赛克去拼贴图案一样,每个马赛克 ...
- php $_SERVER 中的 QUERY_STRING和REQUEST_URI
index.php <?php print_r($_GET); parse_str($_SERVER['QUERY_STRING'],$get); print_r($get); print_r( ...
- P4206[NOI2005]聪聪与可可
链接P4206 [NOI2005]聪聪与可可 类似于开车旅行,如果老鼠确定了那么猫的路线是确定的. 预处理\(g_{i,j}\)表示老鼠在\(i\)号点,猫的下一步方向,\(Bfs\)就行了 设\(f ...
- 对Promise的研究2
3.Promise.prototype.then() Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的.它的作用是为 Promise ...
- web前端 在react中使用移动端事件,学习笔记
一 移动端事件的使用: onTouchStartCapture onTouchStart onTouchMoveCapture on ...
- 模拟安装redis5.0集群并通过Java代码访问redis集群
在虚拟机上模拟redis5.0的集群,由于redis的投票机制,一个集群至少需要3个redis节点,如果每个节点设置一主一备,一共需要六台虚拟机来搭建集群,此处,在一台虚拟机上使用6个redis实例来 ...
- How To Create/Extend Swap Partition In Linux Using LVM
https://www.2daygeek.com/how-to-create-extend-swap-partition-in-linux-using-lvm/ BY RAMYA NUVVULA · ...