Linux文件搜索命令

Linux文件搜索命令

Linux搜索命令列表

  • 文件搜索命令locate
  • 命令搜索命令whereis与which
  • 文件搜索命令find
  • 字符串搜索命令grep
  • find命令与grep命令的区别

文件搜索命令locate

locate [文件名]

在后台数据库中按文件名搜索,搜索速度更快,功能更弱,只能搜索文件名

/var/lib/mlocate

locate命令所搜索的后台数据库,不是实时更新的,一般是一天更新一次

updatedb

更新数据库,新建的文件使用locate是搜索不到的,等一天后就可以搜索到了,我们也可以使用updatedb命令更新
mlocate数据库,这样就可以查询到了

/etc/updatedb.conf配置文件

locate搜索时按照该配置文件的配置信息进行搜索

/etc/updatedb.conf配置文件内容解析:

#开启搜索限制,如果为no,下面的配置规则将无效
PRUNE_BIND_MOUNTS="yes"
#搜索时不搜索的文件类型(不搜索文件名中包含这些的文件)
PRUNENAMES=".git .bzr .hg .svn"
#搜索时,不搜索的路径
PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot"
#搜索时,不搜索的文件系统
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs devtmpfs fuse.mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ceph fuse.ceph fuse.rozofs ecryptfs fusesmb"

搜索命令的命令whereis

whereis [命令名]

  • #搜索命令所在路径及帮助文档所在位置

选项:

  • -b: 只查找可执行文件
  • -m: 只查找帮助文件

搜索命令的命令which

which [命令名]

  • #搜索命令所在路径及别名

文件搜索命令find

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

  • #搜索文件

find / -name install.log

  • #避免大范围搜索,会非常耗费系统资源
  • #find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

find /root -iname install.log

  • 不区分大小写

find /root -user root

  • 按照所有者搜索

find /root -nousert

  • 查找没有所有者的文件

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 . -inum 262442

  • #查找i节点是262442的文件

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

grep [选项] 字符串 文件名

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

选项:

  • i 忽略大小写
  • v 排除指定字符串

find命令与grep命令的区别

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

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

PATH环境变量

  • PATH环境变量定义的是系统搜索命令的路径,只有在PATH环境变量中定义了命令的存放路径,我们的系统命令才能正常执行。
  • 如果自己写的程序,要想不打绝对路径就能执行,就必须在PATH环境变量中配置自己程序的路径,或者将自己的程序放在PATH环境变量中已有的路径下。
  • 例如我们的jdk,就必须配置环境变量,否则java程序将不能正常执行。

Linux中的通配符

  1. * 匹配任意内容
  2. ? 匹配任意一个字符
  3. [] 匹配任意一个中括号内的字符
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页