LInux 文件搜索命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LInux 文件搜索命令相关的知识,希望对你有一定的参考价值。

文件搜索命令  locate

优点:搜索速度很快 缺点: 只能搜索文件名(速度快 耗费资源少)

localte  文件名

(在后台数据库中按文件名 搜索,搜索速度快  localte 命令并不是在系统中去搜索 )

而是会在 /var/lib/mlocate  后台数据库  (#locate 命令所搜索的后台数据库 该数据库是一天一更新)

updatedb  可以立刻更新数据库

locate 搜索时: 按照配置文件来进行搜索  /etc/updatedb.conf 配置文件

# 开启搜索限制 prune_bind_mounts = "yes"

# 搜索时不搜索的文件系统  prunenames =

#搜索时不搜索的路径: prunepaths

 

命令搜索命令 whereis 与which 

whereis # 搜索命令所在路径及帮助文档所在位置    (whatis  whoami)

选项 -b : 只查看可执行文件 -m  只查看帮助文档所在位置

外来命令可以通过  whereis 和which找到

which 会把别名完整名打印出来    可以看一下他的使用

(/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

这个是什么?  在linux中要想要执行脚本,执行文件或者执行命令,只有一种方法那就是使用绝对路径,

有了一个$path 的环境变量 该路径 使用 : 分割的不同路径

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

文件搜索命令 find

locate 命令只能搜文件名 whereis和which命令只能搜命令所在路径

find命令

find  [搜索范围]  [搜索条件]

#搜索文件

find / -name install.log

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

#find 是在系统当中搜索符合条件的文件名。使用通配符匹配,通配符是完全匹配

find  是完全匹配

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

find /root -name "install.log*"

find /root -name "ab[cd]"

find /root -name "*[ab]"   find 文件名 无通配符完全匹配,想要模糊查询,必须加通配符

find /root -iname install.log  不区分大小写

find /root -user root  #按照所有者来进行搜索

find /root -nouser #查找没有所有者的文件

find /root -nouser  很常用    一旦搜索到,没有所有者的文件是垃圾文件 (内核产生的文件有可能没有所有者,proc,sys 是正常的  外来文件 可能没有所有者  )

find  /var/log -mtime +10

#查找10天前修改的文件

-10 10天内修改的文件

10 10天当天修改的文件

+10 10天前修改的文件

atime 文件访问时间

ctime 改变文件属性

mtime 改变文件内容

按照文件大小搜索  :

find [文件路径] -size 25k

find [文件路径] -size 25M 小写的 k 大写的M

按照 inode 来搜索文件

find [文件路径] -inum 262422 # 查找i节点是262422 的文件

find 的复杂操作 

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 命令{} \; 对搜素结果执行操作

find /root -inum 790222 -exec rm -rf {} \;

找到 790222 节点 并删除节点   并发查找

字符串搜索命令 grep

grep [选项] 字符串 文件名

# 在文件当中 匹配符合条件的字符串

选项 :

-i  忽略大小写

-v 排除指定字符串

find命令和grep命令的区别

find 命令: 在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

grep命名: 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

 

以上是关于LInux 文件搜索命令的主要内容,如果未能解决你的问题,请参考以下文章

linux命令之——文件搜索命令

Linux中的文件搜索命令

linux简单命令2---文件搜索命令

LInux 文件搜索命令

Linux —— 文件搜索命令

Linux常用命令——文件搜索命令