Linux学习之文件搜索命令

一、文件搜索命令:locate 文件名
1、在后台数据库(/var/lib/mlocate )中按文件名搜索,搜索速度更快,耗费资源少。

/var/lib/mlocate 不是实时更新的,一般是一天更新;但可强制更新:updatedb命令

2、locate的特点:遵守 /etc/updatedb.conf 配置文件规则:

PRUNE_BIND_MOUNT=“YES” 开启搜索限制
PRUNEFS= 搜索时,不搜索的文件系统
PRUNENAMES= 搜索时不搜索的文件类型
PRUNEPATHS= 搜索时不搜索的路径

3、whereis 命令名 (搜索命名的命令,只能查看命令)
用来搜索 命令 所在路径 及其帮助文档所在位置
选项: -b 只查看可执行文件
-m 只查看帮助文件

4、which 命令
搜索命令所在路径,可以看到命令的别名

5、PATH环境变量:定义的是系统搜索命令的路径

注意:使用命令本应该使用它的绝对路径,但配置了PATH环境变量后,就无需使用绝对路径;使用命令时系统会到PATH路径中查找;

root@luoyuan-Vostro-3459:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

6、find [搜索范围] [搜索条件]
用于搜索文件
注意:避免大范围的搜索,会非常耗费系统资源;如果需要匹配,可以使用通配符,通配符时完全匹配的;
*

      * 匹配任意内容       ? 匹配一个字符           [ ]  匹配任意一个括号中的字符

find /root -name install.log 区分大小写,必须相同
find /root -iname install.log 不区分大小写
find /root -user root 按所有者来查找
find /root -nouser 查找没有所有者的文件

注意:除了linux内核产生的文件,和外来的文件,在linux中的文件都应该具有所有者权限

find /var/log -mtime -10 查找10天内修改的文件
+10 10天前
10 10天当天
-10 10天内

-atime 文件访问时间
-ctime 改变文件属性
-mtime 修改文件内容

find . -size 25k 按文件大小搜索
-25k 小于25k
25k 等于25k
+25k 大于25k

注意:k是小写;M是大写

find . -inum 2563757 按 i节点查找

find . -size +20k -a -size -50k
查找大小在20k到50k之间的文件
-a 逻辑与,两个条件都满足
-o 逻辑或,满足任意一个条件

find . -size +20k -a -size 50k -exec ls -lh {} \ ;
查找大小在20到50k之间的数,并显示详细信息
-exec / -ok 命令 {} \ ; 对搜索结果进行操作

7、grep [选项] 字符串 文件名
在文件中匹配符合条件的字符串
选项:-i 忽略大小写
-v 排除指定字符串(搜索与字符串不符合的)

find与grep的区别: find命令:是在系统中搜索符合条件的文件名;如果需要匹配,则使用通配符匹配;通配符匹配是完全匹配;
grep命令:是在文件中搜索符合条件的字符串;如果需要匹配,则使用正则表达时进行匹配,正则表达式是包含匹配;

猜你喜欢

转载自blog.csdn.net/Owen_L_Y/article/details/84948254