(019) Linux之文件搜索

十年运维系列之基础篇 - Linux

作者:曾林

联系:[email protected]

网站:www.jplatformx.com

版权:文章未经同意请勿转载



一、引言

Linux系统中含有非常多的文件!这就很自然地产生一个问题,那就是我们应该如何去查找文件。虽然我们知道Linux文件系统良好的组织架构,源自于类UNIX的操作系统代代传承的习俗,但是仅文件数量就会引起非常可怕的问题。

本章我们主要介绍两个用在Linux系统中搜索文件的工具。

  • locate:通过文件名来查找文件
  • find:在文件系统目录框架中查找文件

同时,我们还会介绍一个通常与文件搜索命令一起使用、处理搜素结果文件列表的命令。

  • xargs:从标准输入中建立、执行命令行

此外,还会介绍两个辅助工具。

  • touch:更改文件的日期时间
  • stat:显示文件或文件系统的状态

二、locate——较简单的方式查找文件

locate命令通过快速搜索数据库,以寻找路径名与给定字符串相匹配的文件,同时输出所有匹配结果。例如,假定查找名称以zip字符串开头的程序,由于查找的是程序文件,所以可以认为包含所要查找的程序的目录名应以bin结尾。因此可以尝试下面的命令行:

shell> locate bin/zip

      locate程序将搜索该路径名数据库,并输出文件名包含字符串bin/zip的所有文件。执行结果如下图所示:

有时搜索需求并不是那么简单和纯粹,这个时候就需要使用locate命令来结合grep工具来实现一些更有趣的搜索。如下图所示:

注:locate的搜索数据库从何而来?你也许曾注意到,有些Linux版本,系统刚刚安装好后locate命令并不能正常工作,但是如果第二天再尝试的话,就会发现它又能正确工作了,这到底是怎么回事呢?其实,是因为locate的搜索数据库由另一个叫做updatedb的程序来创建的,通常该程序作为一个cron任务定期执行。所谓cron任务就是指定期由cron守护进程执行的任务,多数装有locate命令的系统每天执行一次updatedb。由此可见,locate的搜索数据库并不是持续更新的,所以locate命令查找不到新的文件。解决方案就是切换到超级用户,然后手动执行一下updatedb程序。

时间: 2024-10-08 21:19:51

(019) Linux之文件搜索的相关文章

Linux下文件搜索、查找、查看命令

Linux下文件搜索.查找.查看命令 1.最强大的搜索命令:find 查找各种文件的命令 2.在文件资料中查找文件:locate 3.搜索命令所在的目录及别名信息:which 4.搜索命令所在的目录及帮助文档路径:whereis5.在文件中搜寻字符串匹配的行并输出:grep6.分页显示一个文件或任何输出结果:more7.分页显示一个文件并且可以回头:less8.指定显示前多少行文件内容:head9.指定显示文件后多少行内容:tail10.查看一个文件:cat11.查看文件内容多少字符多少行多少字

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux命令-文件搜索命令:locate

locate inittab 查找名称包含inittab的所有信息(快速搜索,实际上它是搜索linux资料库,区别于find在某一个磁盘分区或者某一个目录中进行查找) locate locate.db 搜索linux资料库 touch /tmp/meinv 在tmp目录中创建一个meinv文件 locate meinv 找不到结果(资料库没有更新) find /tmp -name meinv 能够找到meinv的结果 touch /root/meinv 在root目录中创建meinv文件 loc

linux命令 - 文件搜索命令 find

find [搜索范围][搜索条件] 例如: find / -name install.log find / -iname install.log #不区分大小写 find /root -user root #按照所有者进行搜索 find /root -nouser #查找没有所有者的文件 find /var/log -mtime +10 #查找10天前修改的文件 -10 10天内修改的文件 10  10天当天修改的文件 +10 10天前修改的文件 -atime 文件的访问时间 -ctime 改变

Linux命令-文件搜索命令:whereis

whereis useradd 查找命令useradd的所在位置,同时还查出来它的帮助文件所在位置 whereis rm 查找命令rm的所在位置,同时还查出来它的帮助文件所在位置 whereis passwd 查看passwd文件位置,实际上这里会查出passwd命令和passwd配置文件两个的文件位置,已经它们各自对应的帮助文件位置 在linux系统中通常看到****.1.gz就是命令的帮助,*****.5.gz就是配置文件的帮助.

Linux 命令 - 文件搜索命令 locate

locate 文件名 在后台数据库中按文件名搜索,搜索速度更快 /var/lib/mlocate locate命令所搜索的后台数据库文件 数据库文件默认一天更新一次,可以通过命令 updatedb 更新数据库 locate搜索规则配置文件: /etc/updatedb.conf PRUNE_BIND_MOUNTS="yes" 开启搜索限制 PRUNEFS 搜索时不搜索的文件系统 PRUNEPATHS 搜索时不搜索的路径 PRUNENAMES 搜索时不搜索的文件类型

linux下文件搜索

常用: grep -nr "关键字" 搜索当前目录下所有匹配关键字的文件 grep -nr "关键字" *php  搜索当前目录下所有匹配关键字的php文件 find  -name '*.php'|xargs grep 'Hello!'    搜索当前目录下所有匹配关键字"Hello!"的php文件 替换文件内容 sed -i "s/原字符串/要替换的字符串/g" `grep "原字符串" -rl 路径`

Linux locate 文件搜索

在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 文件处理命令:locate 基础的命令 命令名称:locate 命令的所在路径:/usr/bin/locate 执行权限:所以的用户 语法: locate 文件名 功能描述:在文件资料库中查找文件 范例: $ locate inittab 原文地址:https://www.cnblogs.com/gzbit-zxx/p/8127900.html

Linux 基础——文件搜索命令find

一.find命令的好处 有时会经常在目录下找文件或目录的具体存放在哪,但是该目录下的文件又很多不好找出.这时并不需要手动查看所有的文件,用find命令来帮助查找就行了.所以文件或目录一定归好类,存放有序,这样找起来会方便许多.如果遇到网络高峰期,尽量少用find命令,网络高峰期查找会慢许多. 二.find命令格式及常用命令 命令格式: find [dest_dir] [options] pattern 参数说明: (1)[dest_dir]:指定的目录,如果不写则在当前目录. (2)[optio