linux查找文件locate,grep,find

xiaoxiao2025-11-18  6

查找文件一般有以下几个命令

which   查看可执行文件的位置 whereis 查看可执行文件的位置及相关文件 locate 配合数据库缓存,快速查看文件位置 grep 过滤匹配,他是一个文件搜索工具 find 查找相关文件

which cd 用于查找命令的位置

 

 

whereis cd   输出命令相关的目录和配置文件

 

 

 

locate 速度快,从数据库中查找

默认数据库24个小时更新手动更新数据库  updatedb 当我们在用户目录下新建一个文件1.txt, 直接locate 1.txt是查找不到的 这时就要更新一下数据库updatedb,现在就可以找到创建的文件了

 

 

grep用于查找文件中的内容

grep [选项] 字符串 文件名 # 在文件当中匹配符合条件的字符串 选项: -i 忽略大小写 -v排除指定字符串(取反)    -n 显示行号 匹配一个词: grep word filename 将文件中,没有word的那行取出来,并显示行号 grep -nv word filename 从多个文件里匹配,并显示行号: grep -n word filename1 filenam2 filename3 查看两个文件中共同存在的行,并显示行号 grep -nxf 1.txt 11.txt 查看a.txt的文件比b.txt的文件多出来的部分 grep -vxf b.txt a.txt 查找11.txt文件中是否有某些行的开头是数字1 grep ^1 11.txt 查找11.txt文件中是否有某些行的结尾是数字1 grep 1$ 11.txt 1.txt

 

以递归的方式查找符合条件的文件, 查找/home/sunlizhao目录下所有包含11111的文件 grep -r 11111 /home/sunlizhao/

 

 

 

 

 

 

 

 

 

 

 

 

find 

按照文件名搜索 find /home/ -name ok.txt

避免大范围搜索,会非常耗费系统资源

 

严格区分大小写,如果要进行模糊查询,就要用到通配符

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

 

find /root -iname install.log #搜索名称不区分大小写 find /root -user root #按照所有者搜索 find /root -nouser #查找没有所有者的文件(内核产生或者外来文件)

 

时间搜索

find /var/log/ -mtime +10 #查找10天前修改的文件 -10 10天内修改文件 10 10天当前修改的文件 +10 10天前修改的文件 atime 文件访问时间ctime 改变文件属性mtime 修改文件内容

查找某个目录下四天之内 内容被修改的文件

 

大小搜索

find . -size 25k #查找文件大小是25kb文件 -25k 小于25kb的文件 25k 等于25kb的文件 +25k 大于25kb的文件

 

逻辑搜索

find . -size +25k -a -size -50k # 查找当前目录下大于20k并且小于50kb的文件 -a and逻辑与,两个条件都满足-o or 逻辑或, 两个条件满足一条即可

查找出某个目录小于1k,大于40M的文件

 

转载请注明原文地址: https://www.6miu.com/read-5039843.html

最新回复(0)