太阳集团所有网址16877linux中查找命令find、locat

linux中5条查找命令,linux5条查找命令

linux中查找命令find、locate、whereis、which、type区别

1 which

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

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

太阳集团所有网址16877 1

奇怪,我们经常用到的cd命令怎么找不到呢?这是因为 cd 是bash 内建的指令, which 预设是找 PATH 内所规范的目录,所以找不到。我们可以通过type命令来看看

 

  1. find

2  type

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

太阳集团所有网址16877 2

 

太阳集团所有网址16877 3

  Java代码

3 whereis

whereis命令用来查找命令的位置,包括执行文件、源代码和手册页文件。如果要查找任意文件的所在位置,可以使用locate或者find命令。使用说明如下

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

太阳集团所有网址16877 4

  find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。与查询数据库(/var/lib/locatedb)文件不同,find查找磁盘空间

4 find

find最强大的文件搜索命令,命令使用方式如下

太阳集团所有网址16877 5

   find [PATH] [option] [action]    常用的参数查找方式      
时间查找参数:       
-atime n :将n*24小时内存取过的的文件列出来       
-ctime n :将n*24小时内改变、新增的文件或者目录列出来       
-mtime n :将n*24小时内修改过的文件或者目录列出来       
-newer file :把比file还要新的文件列出来          
名称查找参数:       
-gid n       :寻找群组ID为n的文件       
-group name  :寻找群组名称为name的文件       
-uid n       :寻找拥有者ID为n的文件       
-user name   :寻找用户者名称为name的文件       
-name file   :寻找文件名为file的文件(可以使用通配符) 

find中的时间参数很有意思,具体理解见下图

太阳集团所有网址16877 6

find命令非常的强队,更详细的使用方式参考man find 或者鸟哥的私房菜这本书

  find的使用格式如下:

5 locate

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

   locate命令的使用实例:    $ locate /etc/sh    搜索etc目录下所有以sh开头的文件。    $ locate ~/m    搜索用户主目录下,所有以m开头的文件。    $ locate -i ~/m    搜索用户主目录下,所有以m开头的文件,并且忽略大小写。 

太阳集团所有网址16877 7

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

6 参考文献

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

linux文件查找命令比较

有啊。
locate:这个在部分linux中没有,运行之前,需要先updatedb,更新其数据库,特别是第一次和有新生成的文件的时候。
grep命令:如果你知道文件是在哪个目录下,可以使用ls | grep 文件名
which:查看系统命令的存放地址,比如:which ls
whereis
等等。。。。。。。。。  

  - <指定条件>: 所要搜索的文件的特征。

linux下查找文件的命令

find就可以啊,你不指定路径他就查找所有满足条件的文件
find -name '你的文件名'  

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

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

  如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

  find的使用实例:

  $ find . -name 'my*'

  搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

  $ find . -name 'my*' -ls

  搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

  $ find . -type f -mmin -10

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

  2. locate

  Java代码

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

太阳集团所有网址16877,  locate命令的使用实例:

  $ locate /etc/sh

  搜索etc目录下所有以sh开头的文件。

  $ locate ~/m

本文由太阳集团所有网址16877发布于www.16877.com,转载请注明出处:太阳集团所有网址16877linux中查找命令find、locat

您可能还会对下面的文章感兴趣: