linux自学之二 查找命令

本文详细介绍了Linux中常用的查找命令,包括find、locate、whereis、which和type,提供了各个命令的使用方法、参数、示例以及应用场景,帮助用户快速定位所需文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       今天突然想在linux 找个以前的软件,可是忘记在那个地方了,想查找一下竟然不知道linux的查找命令怎么用,唉,还是要总结一下子。

     

    linux查找命令:find locate whereis which  type


1.find 是最常见的命令,也是最强大的

  find <指定目录> <指定条件> <指定动作>

   指定目录 :所要搜索的目录及所有其子目录。默认当前目录

   指定条件:所要搜索的文件的特征

   指定动作:对搜索结果进行特定的处理

如果什么参数也不加,find默认搜索当前目录下及其子目录下,并且过滤任何结果,既返回所有结果在屏幕上

 -mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案 
  -amin n : 在过去 n 分钟内被读取过 
  -anewer file : 比档案 file 更晚被读取过的档案 
  -atime n : 在过去 n 天过读取过的档案 
  -cmin n : 在过去 n 分钟内被修改过 
  -cnewer file :比档案 file 更新的档案 
  -ctime n : 在过去 n 天过修改过的档案 
  -empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name 
  -ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写 
  -name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写 
  -size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 档案类型是 c 的档案。 
  d: 目录 
  c: 字型装置档案 
  b: 区块装置档案 
  p: 具名贮列 
  f: 一般档案 
  l: 符号连结 
  s: socket 
  -pid n : process id 是 n 的档案 


lg: find -name ‘my*’ 搜索当前目录下的,所有文件名以my开头的文件

       find . -name 'my*' -ls 搜索当前目录中,所有文件以my开头的文件,并显示他们的祥细信息

       find  . -type f -mmin -10 搜索当前目录中,所有过去10分钟内更新过的普通文件。如果不加-type  f参数,则搜索普通文件+特殊文件+目录

详细语法参照:http://www.linuxsir.org/main/node/137


2,locate  

    locate 是find -name 的另一种泄愤,但要比后者快的多,原因是它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。linux系统自动创建的这个数据库,并且每天自动更细一次,所以使用locate查不到最近变动的过的文件。为了避免这种情况,可以在使用前locate,先使用updatedb命令,手动更新数据库。

 lg:locate /etc/sh 搜索etc目录下的所有sh开头的文件

        locate ~/m 搜索用户目录下,所有以m开头的文件。

        locate -i ~/m 搜索用户目录下,所有以m开头的文件,并忽略大小写

 名称:locate 
  使用权限:所有使用者 
  使用方式: locate [-q] [-d ] [--database=] 
  locate [-r ] [--regexp=] 
  locate [-qv] [-o ] [--output=] 
  locate [-e ] [-f ] <[-l ] [-c] 
  <[-U ] [-u]> 
  locate [-Vh] [--version] [--help] 
  说明: 
  
  locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。 
  
  在一般的 distribution 之中,数据库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用 
  
  # locate your_file_name 
  
  的型式就可以了。 参数: 
  -u 
  -U 
  
  建立数据库,-u 会由根目录开始,-U 则可以指定开始的位置。 
  
  -e 
  
  将 
   排除在寻找的范围之外。 
  
  -l 
  如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。 
  
  -f 
  将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在数据库中。 
  
  -q 
  安静模式,不会显示任何错误讯息。 
  
  -n 
  至多显示 个输出。 
  
  -r 
  使用正规运算式 做寻找的条件。 
  
  -o 
  指定数据库存的名称。 
  
  -d 
  
  指定数据库的路径 
  
  -h 
  显示辅助讯息 
  
  -v 
  显示更多的讯息 
  
  -V 
  显示程序的版本讯息 范例: 
  
  locate chdrv : 寻找所有叫 chdrv 的档案 
  locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个 
  locate -u : 建立数据库 


3,        whereis whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(canshu-b),man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回虽有信息

lg whereis grep 

参  数:
 -b  只查找二进制文件。 
 -B<目录>  只在设置的目录下查找二进制文件。 
 -f  不显示文件名前的路径名称。 
 -m  只查找说明文件。 
 -M<目录>  只在设置的目录下查找说明文件。 
 -s  只查找原始代码文件。 
 -S<目录>  只在设置的目录下查找原始代码文件。 
 -u  查找不包含指定类型的文件。

4,which 在path变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

lg :which grep

参  数:
 -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 
 -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。 
 -w  指定输出时栏位的宽度。 
 -V  显示版本信息。


5,type 命令其实不能算是查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,先党羽which命令。 

  lg:  type cd 系统会显示 cd是shell的自带命令(build-in)

       type grep 提示为一个外部命令,并显示该命令的路径

       type -p grep  加上-p参数后,相当于which命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值