文件搜索命令locate
- locate 文件名
在后代数据库中直接搜索文件名,搜索速度快
- /var/lib/mlocate
后台文件数据库
- updatedb
查找这个数据库位置
强制命令更新数据库
这搜索命令是直接在后台数据库中搜索,但是数据库一天更新一次,所以要使用updatedb这个命令
但是,如下图更新过数据库还是找不到
因为搜索是按照updatedb.conf这个配置文件搜索,下图所显示的都是不去搜索的,其中就包括tmp文件
搜索命令的命令
whereis 命令名 搜索命令所在的路径及帮助文档
-b: 只查找可执行文件
-m: 只查找帮助文件
这个命令只能搜索系统命令,不能搜索用户自己创建的
which 命令名
这个命令还可以查到所查命令的别名
find命令
- find [搜索范围][搜索条件] 搜索文件
- find / -name install.log 扩大搜索范围,会非常耗费系统资源。 find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配
“/”表示在根目录下搜索所以会搜索的很慢,find查找的的是和你搜的一模一样
- find /root -iname install.log 不区分大小写 (/root root目录下)
- find /root -user root 按照所有者搜索
- find /root -nouser 查找没有所有者的文件
第三条命令是很有用的。在Linux中没有所有者的文件除了两种其他的都是垃圾文件。这两种分别是内核产生的文件和外来文件(比如u盘或光盘的文件)。垃圾文件应该手动清理。
内核文件:
- find /var/log/ -mtime +10 查找十天前修改的文件(/var/log/ 日志目录)
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
- find . size 25k 查找文件大小为25k的文件 (“.”这是当前目录)
搜索大小时kb是小写k,mb是大写M
-25k 小于25kb的文件
25k 等于25kb的文件
+25k 大于25kb的文件
- find . inum 262422 查找文件i节点是262422的文件
- find /etc -size +20k -a -size -50k 查找/etc目录下大于20kb小于50kb的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个
- find /etc -size +20k -a -size -50k -exec ls -lh {}\ ; 查找/etc目录下,大于20kb并且小于50kb的文件,并显示详细信息。 -exec/-ok 命令 {}\; 对搜索结果执行操作
搜索字符串命令
- grep [选项] 字符串 文件名 在文件当中匹配符合条件的字符串
-i 忽略大小写
-v 排除指定字符串
搜索的是anaconda-ks.cfg这个文件内容。下面是搜索包含“size”的
Linux通配符
* 匹配任意内容
? 匹配任意一个字符
【】 匹配任意一个中括号内的字符