加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

Linux搜索文件的5个高效命令的正确使用方法

发布时间:2019-09-05 15:57:36 所属栏目:评测 来源:Linux学习教程
导读:1. 前言 本文主要讲解Linux系统里最常用的5个高效搜索文件的命令,他们分别是which,type,whereis,locate,find 他们的使用分别是: which:在PATH路径变量中,搜索系统命令对应文件的目录位置 type:用于显示哪些命令是shell自带的,哪些命令是外部命令
副标题[/!--empirenews.page--]

 1. 前言

本文主要讲解Linux系统里最常用的5个高效搜索文件的命令,他们分别是which,type,whereis,locate,find

Linux搜索文件的5个高效命令的正确使用方法

他们的使用分别是:

  • which:在PATH路径变量中,搜索系统命令对应文件的目录位置
  • type:用于显示哪些命令是shell自带的,哪些命令是外部命令。如何使用选项-p,会显示外部命令的保存位置,相当于which命令。
  • whereis:只能用于搜索程序名,选项-b用于搜索二进制文件,即编译好的文件、选项-m用于搜索用户手册文件和选项-s用于搜索源代码文件
  • locate:基于数据库缓存信息显示文件位置,并不是实时查找,如果想要实时查找,使用前需要手动更新数据库。
  • find:Linux系统最常用和最强大的查找命令,用于实时查找硬盘上的文件。

注意:

在这5个命令中,find命令是最慢的,原因是它可以搜索任意类型的文件,并且是实时查找的。

通常先使用whereis或者locate查找文件,如果没有找到目标文件,再用find命令

这是因为whereis与locate通过查询数据库来定位文件路径的,所以相当快速,比较节省时间。而find命令是通过实时搜索硬盘的文件的。

locate命令是mlocte软件套件的一个子命令集,通过以下命令安装mlocate套件

  1. [root@CentOS7 ~]# yum -y install mlocate 

总下载量:113 k

安装大小:379 k

Downloading packages:

mlocate-0.26-8.el7.x86_64.rpm | 113 kB 00:00:00

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

正在安装 : mlocate-0.26-8.el7.x86_64 1/1

验证中 : mlocate-0.26-8.el7.x86_64 1/1

已安装:

mlocate.x86_64 0:0.26-8.el7

完毕!

执行以下命令手动更新数据库:

  1. [root@CentOS7 ~]# updatedb 

updatedb命令通过读取/etc/updatedb.conf中的配置,然后搜索整个Linux文件系统的文件,然后更新数据库文件,查找文件直接读取该数据库

2. 搜索系统命令位置-`which`命令

which命令在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

which命令的格式如下:

  1. which [-a] command 

which命令的参数如下:

  • -a:将所有由PATH目录中可以找到的命令均列出来,而不是只列出第一个被找到的命令。

使用案例,通过which命令查找wget程序文件所在的目录位置:

  1. [root@zcwyou ~]# which wget 

/usr/bin/wget

可以看出wget的程序位置

3. 搜索程序相关的文件命令`whereis`

whereis命令的使用格式如下:

  1. whereis [-bmsu] 文件或目录名 

whereis命令的选项作用如下:

选项备注-b只搜索程序二进制文件-m只搜索程序对应的使用手册-s只搜索程序源文件-u查找不在上述三个选项当中的其他特殊文件

使用locate搜索案例:

搜索locate这个命令程序所在的位置:

  1. [root@CentOS7 ~]# whereis locate 

搜索结果如下,可以看出locate程序的程序文件和手册文件所在的位置

locate: /usr/bin/locate /usr/share/man/man1/locate.1.gz

搜索chmod程序的使用手册文件

  1. [root@zcwyou ~]# whereis -m chmod 

chmod: /usr/share/man/man1/chmod.1.gz

搜索程序相关的文件命令之whereis

4. 通过`locate`命令搜索文件

locate命令的格式如下:

  1. locate [-ir] keyword 

locate命令的参数如下:

  • -i:忽略大小写差异;
  • -r:后面可接正则表达式的实现方式。

使用案例:

  1. [root@zcwyou ~]# locate useradd 

/etc/default/useradd

/usr/sbin/luseradd

/usr/sbin/useradd

/usr/share/man/de/man8/useradd.8.gz

/usr/share/man/fr/man8/useradd.8.gz

/usr/share/man/id/man8/useradd.8.gz

/usr/share/man/it/man8/useradd.8.gz

/usr/share/man/ja/man8/useradd.8.gz

/usr/share/man/man1/luseradd.1.gz

/usr/share/man/man8/useradd.8.gz

/usr/share/man/ru/man8/useradd.8.gz

/usr/share/man/tr/man8/useradd.8.gz

/usr/share/man/zh_CN/man8/useradd.8.gz

/usr/share/man/zh_TW/man8/useradd.8.gz

5. 使用Linux最强大的搜索命令工具`find`

可以通过find命令查找Linux系统文件上的任何文件

使用Linux最强大的搜索命令工具find

find命令的使用格式如下:

  1. find [PATH] [option] [action] 

5.1 `find`命令基于文件名的搜索

与文件名有关的参数如下:

-name filename:查找文件名为filename的文件。filename可使用正则表达式表示。

使用案例:

  1. [root@CentOS7 ~]# find / -name sz 

/usr/bin/sz

查找文件名为sz的文件。

5.2 `find`命令之基于文件大小的搜索

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读