Linux文件搜索命令

Linux文件之搜索命令

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/目录不进行搜索。所以没有进行查找
locate优点:效率高,耗费资源少
locate缺点是:只能按照文件名来搜索
查看updatedb命令的配置文件 vi /etc/updatedb.conf

whereis

文件搜索命令:whereis (只能搜索系统命令,不能搜索自己凭空创建的普通文件)
whoami显示当前操作用户 //who am i 显示登录用户
whatis ls 显示ls的作用
选项:
-b:只查找可执行文件
-m:只查找帮助文件
文件搜索命令:which(不仅能看到命令的路径,如果有别名,还能看到别名)
ls =‘ls --color=auto’(ls显示颜色,设置为自动)
whereis和which不能看到shell的默认命令(如:cd),只能看到外部安装的命令。
echo $PATH说明:不光是Linux专有的,Windous重也有,类似于Windows中的环境变量,执行命令的时候都要在path定义的目录中去寻找。
所以像ls这样的命令就可以不用加路径(/bin/ls)执行了。
如果自己写的脚本 在运行时不想要具体的目录 需要在path设置目录

find

find搜索(避免大范围的搜索,会非常浪费系统资源,建议不在直接在“/”目录下搜索)
格式:find 【搜索范围】【搜索条件】;
例:find /home -name 文件名;
注意:find搜索默认是完全匹配。
如果需要进行模糊查询,需要添加通配符,通配符有以下3种
”匹配任意字符,例:find /home -name “test”,显示所有名字带test的文件;或例:find /home -name “”,home目录下的所有文件,包括隐藏文件。
“?”匹配任意一个字符,
“【】”匹配任意一个中括号内的字符,例:find /home -name “test【12】”,显示test1和test2文件;或find /home -name “【12】”,显示以1和2开头的文件。
组合使用:例:find /home -name “
【12】”,显示所有1和2结尾的文件
find 按文件时间来搜索
find /home -mtime +10 在home目录下,查找10天前修改的文件
find /home -mtime 10 在home目录下,查找10天前当天修改的文件
find /home -mtime -10 在home目录下,查找10天内修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
find搜索
find /root -iname test 不区分要搜索的test大小写格式
find /root -user root 搜索root目录下的所有属于root用户的文件
find /root -nouser 没有所属者的文件,liunx中,每个文件都有所属者,如果没有,那么一般都是垃圾文件,但还是有特例的,比如内核产生的文件,就没有所属者,一般在proc和sys目录下;还有外来文件,也就是U盘拷入的文件也会忽略所有者。
find 目录 -size 文件大小
注意:文件大小用小写k和大写M。
-a 表示and
-o 表示or
find /etc -size +20k -a -size -50k -exec ls -lh {} ;
-exec {} ; 固定格式,表示直接对前面的搜索结果进行后面的命令处理

grep

grep [选项] 字符串 文件名 (字符串使用 “” 包围,结果为行记录)
-i 忽略大小写
-v 排除指定字符串
find 命令与 grep 命令的区别
find:在 系统 中搜索符合条件的 文件名,使用 通配符(完全)匹配
grep:在 文件 当中搜索符合条件的 字符串,使用 正则表达式 (包含)匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值