Linux文件搜索命令

时间:2021-05-24 15:35:07   收藏:0   阅读:18

locate命令格式

1.搜索文件命令:locate [文件名]

特点:在后台数据库中按文件名搜索,搜索速度更快,消耗系统资源更少。

2.locate命令所搜索的后台数据库路径:/var/lib/mlocate

注意:默认更新频率为一天一次。在不同linux中,该数据库名字稍微不同,例如,locatedb、slocate、mlocate。可使用命令:locate locate搜索locate相关文件,可看到locate数据库名称。

3.更新数据库,命令:updatedb

注意:对于新建的文件,由于数据库没有更新,使用locate命令不能查到。可以使用updatedb强制更新数据库后即可查到。

4.配置文件:/etc/updatedb.conf

文件内容: PRUNE_BIND_MOUNTS = "yes" (开启搜索限制,yes为后面三项都生效。no为 后面三项都不生效)

PRUNEFS = (搜索时,不搜索的文件系统)

PRUNENAMES = (搜索时,不搜索的文件类型)

PRUNEPATHS = (搜索时,不搜索的路径)

例如:touch /root/cangls;touch /tmp/cangls;updatedb;locate cangls。

显示为 /root/cangls只有一条,而/tmp下的cangls没有显示出来,原因在于locate搜索遵循配置文件 /etc/updatedb.conf, 在PRUNEPATHS中配置了/tmp/目录不进行搜索。所以没有进行查找

查看updatedb命令的配置文件 vi /etc/updatedb.conf

命令搜索命令whereis与which

1.命令:whereis [命令名](搜索系统命令所在路径以及帮助文档所在位置)

选项:

例:搜索ls命令,命令:whereis ls。如果输入“whereis -b ls”,只会显示红字。如果输入“whereis -m ls”,则只会显示黄字。

ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

2.命令:which [命令名](搜索系统命令所在路径和查看到命令的别名)

注意:whereis和which不能搜索shell(当前系统界面叫做shell)的默认命令(如:cd),只能搜索外部安装的命令。

3.环境变量$PATH
定义系统搜索命令的路径。whereis和which搜索命令的路径是依赖PATH所定义的路径。Linux执行命令的时候都要在path定义的目录中去寻找。

系统命令不需要打绝对路径,如:ls这样的命令就可以不用加路径(/bin/ls)执行。如果是自己写的脚本或者自己写的程序,就需要打绝对路径,或者在$PATH中设置。

命令:echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

find命令

避免大范围的搜索,会非常浪费系统资源,建议不在直接在“/”目录下搜索
1.格式:find 【搜索范围】【搜索条件】
例:find /home -name 文件名;
注意:find搜索默认是完全匹配。

如果需要进行模糊查询,需要添加通配符,通配符有以下3种

2.find 按文件时间来搜索

find /home -mtime +10 在home目录下,查找10天前修改的文件
find /home -mtime 10 在home目录下,查找10天前当天修改的文件
find /home -mtime -10 在home目录下,查找10天内修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

3.find搜索

4.find 目录 -size 文件大小
注意:文件大小用小写k和大写M。

知道文件名查i节点用ls -i,知道i节点查文件名用find . -inum (i节点)

-a and 逻辑与,两个条件都满足

-o or 逻辑或,两个条件满足一个即可

查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息

能处理第一个搜索出来的结果的命令,才能放在“命令”处

字符串搜索命令grep

1.命令:grep [选项] 字符串 文件名(在文件当中匹配符合条件的字符串)

选项:

例:grep "size" anaconda-ks.cfg,即搜索anaconda-ks.cfg文件中包含“size”的内容。

2.find命令与grep命令的区别

find:在系统中搜索符合条件的文件名,使用 通配符(完全)匹配。

grep:在文件当中搜索符合条件的字符串,使用 正则表达式 (包含)匹配。

原文:https://www.cnblogs.com/fynnn/p/14803676.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!