which whereis locate find 用法

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索。这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用。

which   在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
whereis whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
locate  配合数据库查看文件位置。
find    实际搜寻硬盘查询文件名称。

1、which

语法:

[[email protected] ~]# which 可执行文件名称 

例如:

[[email protected] ~]# which passwd
/usr/bin/passwd 

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件,所以基本的功能是寻找可执行文件

2、whereis

whereis指令查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件.
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

语法:

[[email protected] ~]# whereis [-bmsu] 文件或者目录名称 

参数说明:

-b : 只找二进制文件
-m : 只找在说明文件manual路径下的文件
-s : 只找source源文件
-u : 没有说明文档的文件 

例如:

[[email protected] ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz 

将和passwd文件相关的文件都查找出来

[[email protected] ~]# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd 

只将二进制文件查找出来

和find相比,locate查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。

但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新(使用updatedb命令进行更新)。

3、 locate

语法:

[[email protected] ~]# locate 文件或者目录名称

例 如:

查看locate版本信息-V

[email protected]/0 # locate -V
mlocate 0.22.2
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.

This program is provided with NO WARRANTY, to the extent permitted by law.

查看locate帮助信息

[email protected]/0 # locate -h
Usage: locate [OPTION]... [PATTERN]...
Search for entries in a mlocate database.

  -b, --basename         匹配唯一的路径名称的基本文件名
  -c, --count            只显示找到条目的号码
  -d, --database DBPATH  DBPATH 用 DBPATH 替代默认的数据库(/var/lib/mlocate/mlocate.db)
  -e, --existing         只显示当前存在的文件条目
  -L, --follow           当文件存在时跟随蔓延的符号链接 (默认)
  -h, --help             显示本帮助
  -i, --ignore-case      匹配模式时忽略大小写区别
  -l, --limit, -n LIMIT  限制为 LIMIT项目的输出 (或 计数)
  -m, --mmap             忽略向后兼容性
  -P, --nofollow, -H     当检查文件时不跟随蔓延的符号链接
  -0, --null             输出时以 NUL 分隔项目
  -S, --statistics       不搜索项目,显示有关每个已用数据库的统计信息
  -q, --quiet            不报告关于读取数据库的错误消息
  -r, --regexp REGEXP    搜索基本正则表达式 REGEXP 来代替模式
      --regex            模式是扩展正则表达式
  -s, --stdio            忽略向后兼容性
  -V, --version          显示版本信息
  -w, --wholename        匹配完整路径名 (默认)  

将 bug 报告给 [email protected] 

4、 find

语法:

[[email protected] ~]# find 路径 参数

示例:

[[email protected] ~]# find / -name zgz
/home/zgz
/home/zgz/zgz
/home/weblogic/bea/user_projects/domains/zgz
/home/oracle/product/10g/cfgtoollogs/dbca/zgz
/home/oracle/product/10g/cfgtoollogs/emca/zgz
/home/oracle/oradata/zgz

+++++++++++++++++++++++++++++++++++++++++++++++++++++

当我们用locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate 是在数据库里查找,数据库大至每天更新一次。
whereis 可以找到可执行命令和man page
find 就是根据条件查找文件。
which 可以找到可执行文件和别名(alias)

原文地址:http://blog.51cto.com/chaichuan/2095847

时间: 2024-10-23 16:49:23

which whereis locate find 用法的相关文章

linux文件名称查找which,whereis,locate

1. 文件名称查找 使用find查询时.因为磁盘查询.所以速度较慢. 所以linux下查询更常使用which, whereis, locate来查询,因为是利用数据库查询.所以速度非常快. 2. which 我们经常使用的ls命令.假设我们想知道这些经常使用命令放在哪儿. 就使用which命令来查询地址. which使用PATH 环境变量去查找文件名称, which -a 返回全部的查到的命令, 默认返回第一条. $ which grep /bin/grep $ which ll alias l

linux文件名查找which,whereis,locate

1. 文件名查找 使用find查询时,由于磁盘查询,所以速度较慢, 所以linux下查询更常使用which, whereis, locate来查询,由于是利用数据库查询,所以速度很快. 2. which 我们常用的ls命令,如果我们想知道这些常用命令放在哪儿, 就使用which命令来查询地址. which使用PATH 环境变量去查找文件名, which -a 返回所有的查到的命令, 默认返回第一条. $ which grep /bin/grep $ which ll alias ll='ls -

文件查找 /which/whereis/locate/find/grep

Which #查找固定的目录# [[email protected] home]# which ba /usr/bin/which: no ba in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) [[email protected] home]# which ls alias ls='ls --color=auto' /bin/ls 我们可以看到 whic

linux的查找命令 find whereis locate

Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利用数据库来查找数据,而find直接查找硬盘. 1 whereis whereis 命令只能用户程序名称的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m) 和源代码文件(参数-s). 如果省略参数,则返回所有信息.和find相比,whereis查找的速度非常快,这是因为linux系统

find whereis locate which

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which       查看可执行文件的位置 whereis    查看文件的位置 locate       配 合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 1.which 语法: [[email protected] ~]# which 可执行文件名称 例如: [[email pr

Linux学习总结(十五)文件查找 which whereis locate find

which命令 用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录.which指令会在环境变量$PATH设置的目录里查找符合条件的文件.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令.格式 which + 命令 例如 which ls whereis命令 用来定位指令的二进制程序.源代码文件和man手册页等相关文件的路径.whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-

linux下查找文件或目录(which,whereis,locate,find)

命令 查找对象 查找速度 备注 which 可执行文件  根据PATH变量的内容去寻找可执行文件  不同的PATH配置会有不一样的结果 whereis 程序名的搜索  根据数据库来寻找,速度快  只支持二进制文件,源代码,man手册 locate 文件或目录  根据数据库来寻找,速度快  更新数据库:$sudo updatedb find 文件或目录  在硬盘里寻找,速度慢  NA

Linux下各种查找命令(find, grep, which, whereis, locate)

find命令 find < path > < expression > < cmd > path: 所要搜索的目录及其所有子目录.默认为当前目录. expression: 所要搜索的文件的特征. cmd: 对搜索结果进行特定的处理. 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上. find命令常用选项及实例 -name 按照文件名查找文件. find /dir -name filename 在/

which, whereis, locate, find的区别

which       查看可执行文件的位置,这些可执行文件都是在PATH环境变量中设置好的,所以which基本上都是查找可执行的文件 [[email protected] ~]# which yum /usr/bin/yum whereis    查看文件的位置 [[email protected] ~]# whereis [-bmsu] 文件或者目录名称 参数说 明: -b : 只找二进制文件 -m: 只找在说明文件manual路径下的文件 -s : 只找source源文件 -u : 没有说