Linux之搜索查找类命令

这篇具有很好参考价值的文章主要介绍了Linux之搜索查找类命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

搜索查找类命令

find:查找文件或者目录

find指令将从指定的目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

1)基本语法

find [path...] [选项]

2)选项说明

选项 说明
-name 文件名称 按文件名查找文件
-user 用户名 查找属于指定用户名的所有文件
-size [±]n[bcwkMG] 按照指定多文件大小查找文件 n:数字,表示文件大小,n后面可以跟单位 单位为(区分大小写): b:块(512字节) c:字节 w:字(2字节) k:千字节 M:兆字节 G:吉字节

3)案例

案例 说明
find -name 1.txt 在当前目录及其所有子目录中查询1.txt文件
find / -name 1.txt 在/目录及其所有子目录中递归查找1.txt文件
find / -name *.txt 在/目录及其所有子目录中递归查找.txt结尾的文件
find /opt/ /home/ -name *.txt 在[/opt,/home]两个目录中递归查找.txt结尾的文件
find / -size 10M 在/目录递归查找文件大小为10M的文件
find / -size +10M 在/目录递归查找大于10M的文件
find / -size +10M -size -100M 在/目录递归查找大于10M且小于100M的文件
find / -name *.log -size +50M -size -100M 在/opt目录中查找名称以.log结尾的且大于50M小于100M的文件

locate:快速定位文件路径

locate 命令和find命令一样都是用来在系统下查找文件或目录。但 locate命令要比find -name快得多,原因在于locate命令在查找文件时并不扫描具体目录,而是搜索一个已经创建好的数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地几乎所有文件信息(一些被排除在外的目录或刚创建的目录可能不会包含在数据库中。Linux系统会自动创建这个数据库,并且通过定时任务每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库,但这也需要一定的时间,时间长短和空间大小文件数量有关。整个locate工作其实是由四部分组成的:

  1. /usr/bin/updatedb 主要用来更新数据库,通过crontab自动完成的
  2. /usr/bin/locate 查询文件位置
  3. /etc/updatedb.conf updatedb的配置文件
  4. /var/lib/mlocate/mlocate.db 存放文件索引信息的数据文件

1)语法

locate [OPTION]... [PATTERN]...

2)选项

      -b, --basename         match only the base name of path names
      -c, --count            只输出找到的数量
      -d, --database DBPATH  使用DBPATH指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
      -e, --existing         only print entries for currently existing files
      -L, --follow           follow trailing symbolic links when checking file existence (default)
      -h, --help             显示帮助
      -i, --ignore-case      忽略大小写
      -l, --limit, -n LIMIT  limit output (or counting) to LIMIT entries
      -m, --mmap             ignored, for backward compatibility
      -P, --nofollow, -H     don't follow trailing symbolic links when checking file existence
      -0, --null             separate entries with NUL on output
      -S, --statistics       don't search for entries, print statistics about eachused database
      -q, --quiet            安静模式,不会显示任何错误讯息
      -r, --regexp REGEXP    使用基本正则表达式
          --regex            使用扩展正则表达式
      -s, --stdio            ignored, for backward compatibility
      -V, --version          显示版本信息
      -w, --wholename        match whole path name (default)

3)经验技巧

由于 locate 指令基于数据库进行查询, 所以第一次运行前, 必须使用 updatedb 指令创建 locate 数据库。

4)查找文件

[root@Demo-Server ~]# updatedb
[root@Demo-Server ~]# locate 1.txt
/etc/brltty/brl-ts-pb65_pb81.txt
/etc/pki/nssdb/pkcs11.txt
/home/sin/.cache/tracker/parser-sha1.txt
/home/test/.cache/tracker/parser-sha1.txt
/usr/lib/firmware/brcm/brcmfmac4330-sdio.Prowise-PT301.txt
/usr/lib/firmware/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
/usr/local/a/text1.txt
/usr/local/a/a/1.txt
/usr/local/b/text1.txt

grep:过滤查找即“|”管道符

管道符,“|”,表示将前一个命令的处理结果输出通过管道传递给后面的命令进行处理。

1)基本语法

grep 选项 查找内容 源文件

2)选项说明

选项 功能
-n 显示匹配行及行号
-v 反向匹配

3)案例

查找1.txt中ready在哪些行

下面先使用cat命令查看1.txt的内容。

然后后面有使用了2种方式检索ready位于1.txt中所在行号及内容。

第1种:grep -n hello test.txt

第2种:cat test.txt | grep -n hello,这里使用到了管道命令,将cat 1.txt的结果通过管道命令传递给 grep,grep将传递过来的内容作为查找目标。

[root@Demo-Server ~]# touch test.txt
[root@Demo-Server ~]# vi test.txt
hello
world
你好
世界
[root@Demo-Server ~]# cat test.txt
hello
world
你好
世界
[root@Demo-Server ~]# grep -n hello test.txt//查找test.txt中包含hello的词
1:hello
[root@Demo-Server ~]# grep -n o test.txt //查找test.txt中包含o的词
1:hello
2:world
[root@Demo-Server ~]# cat test.txt | grep -n hello
1:hello
[root@Demo-Server ~]# grep -v hello test.txt
world
你好
世界

which:在PATH下查找命令位置

这条命令主要是用来查找系统***PATH目录下***的可执行文件,说白了就是查找那些我们已经安装好的可以直接执行的命令,比如

[root@Demo-Server ~]# which useradd
/usr/sbin/useradd
[root@Demo-Server ~]# which ls
alias ls='ls --color=auto'
        /bin/ls

which 查找的可执行文件,必须是要在 PATH 下的可执行文件,而不能是没有加入 PATH 的可执行文件,即使他就是可执行文件,但是没有加入到系统搜索路径,他仍然无法被 which 发现(好吧,有点啰嗦了)。

whereis:查找可执行文件路径

whichwhereis命令都是Linux操作系统下查找可执行文件路径的命令。

whereis这个命令可以用来查找二进制(命令)、源文件、man文件。与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所以查找的面比which要广。例如:

[root@Demo-Server ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@Demo-Server ~]# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz

可以看到,whereis不仅找到了 ls 可执行文件的位置,还找到了其 man 帮助文件,可见其搜索范围比较广,不局限于PATH。文章来源地址https://www.toymoban.com/news/detail-526108.html

到了这里,关于Linux之搜索查找类命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux服务器移动文件命令

    mv(move) 命令可以将文件和目录从一个位置 移动 到另一个位置;         它也可以用来 重命名 文件和目录。 mv命令语法         source 可以是一个或多个文件或目录;         destination 总是一个文件或目录;         如果我们以单个文件为源,以一个目录为目标

    2023年04月25日
    浏览(41)
  • linux服务器启动、关闭、重启命令

    关机命令: 1、halt 立刻关机 2、poweroff 立刻关机 3、shutdown -h now 立刻关机(root用户使用) 4、shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启 5、init0 停机或者关机 重启命令: 1、reboot 立即重启 2、shutdown -r now 立刻重启(root用户使

    2024年02月15日
    浏览(59)
  • Linux 查看服务器内存、CPU 命令

    1 查看物理CPU个数:         Procs(进程) 2 查看服务器CPU内核个数 1 linux查看系统内存(硬盘) 2 查看服务器硬盘(当前文件夹下)使用率: 3 查看服务器硬盘(所有文件占用率)使用率: 1 查看内存,不带单位 2 查看内存使用情况,带单位,显示查看结果 显示的参数:       

    2024年02月15日
    浏览(50)
  • linux常用查看服务器内存的命令

    free 命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。   free 命令的基本格式如下: [root@localhost ~]# free [选项] 表 1 罗列出了此命令常用的选项及各自的含义。 表 1 free 命令

    2024年02月16日
    浏览(59)
  • 【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库

    🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长! 没有找到合适的参考链接,在gpt的协作下一步完成了这份指南。欢迎交流 ~ 在Python项目中,如果你的目标是通过JDBC连接到位于Linux远程服务器上

    2024年04月28日
    浏览(41)
  • Linux之搜索查找类命令

    find指令将从指定的目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。 1)基本语法 2)选项说明 选项 说明 -name 文件名称 按文件名查找文件 -user 用户名 查找属于指定用户名的所有文件 -size [±]n[bcwkMG] 按照指定多文件大小查找文件 n:数字,表示文件大小,

    2024年02月12日
    浏览(27)
  • Linux(三):Linux服务器下日常实操命令 (常年更新)

    cd命令 :切换目录  cd   :切换当前目录百至其它目录,比如进入/etc目录,则执行 cd /etc cd / :在Linux 系统中斜杠“/”表示的是根目录。cd / ,即进入根目录. cd ~:进入用户在该系统的home目录,例如xz用户,则进入/root/xz目录 cd.. :返回上一级目录   cd - : 切换到上一次目录

    2024年02月14日
    浏览(41)
  • linux 查看硬件服务器命令大全(超详细)

    一、查看服务器硬件信息 查看服务器型号、 序列号 查看主板型号 查看BIOS信息 查看 内存 槽及内存条 查看网卡信息 二、查看CPU信息 (1)查看cpu型号 (2)查看系统中实际物理CPU的数量 (3)系统中逻辑CPU的数量(核数) (4)查看单颗物理CPU核数 (5)查看CPU的主频 查看

    2024年02月05日
    浏览(50)
  • 使用Linux命令修改服务器时间及设置时区

    在服务器管理和维护中,准确的系统时间对于保证服务器正常运行和数据一致性至关重要。 而有时候,我们可能需要手动修改服务器上的系统时间,以调整时区、修复时间漂移等问题。 本文将介绍如何使用Linux命令来修改服务器时间。 一、检查当前时间 首先,我们需要使用

    2024年02月21日
    浏览(53)
  • 【Linux】curl 命令 在服务器上测试接口

    业务场景:最近一直在做对外合作的业务,比如对接微信、支付宝、中行等支付相关的接口,引出本篇 的根本原因就是在进行对接中行领取数字红包的接口时,他们会针对我们的服务器IP来开放指定的接口访问权限,本地想通过AirPost之类的工具测试人家的接口是没有权限的,

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包