文件查找之find优良体验

一、linux下的文件查找命令

在使用linux时,你经常需要查找文件,在Linux中,有很多方法可以做到这一点。下面我们列出一些常见的基本的命令,顺便对比这些命令的工作机制,和优缺点,以便更好的了解find.

参考

1.find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

# $ find <指定目录> <指定条件> <指定动作>#  - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。#  - <指定条件>: 所要搜索的文件的特征。#  - <指定动作>: 对搜索结果进行特定的处理。#如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果#即遍历所有文件,并将它们全都显示在屏幕上。

2.locate

locate命令其实是”find -name”的另一种写法,但是要比后者快得多。

原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。

Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

所以locate是一种依赖于数据库的查找,非实时查找,结果非精确,查找速度快, 模糊查找。

因为数据库不是实时的更新,而手动更新数据库却需要时间等待重写数据库,此时locate所具有的优势消逝殆尽。

locate命令的使用实例:

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

3.whereis

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

whereis命令的使用实例:

$ whereis grep

4. which

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

which命令的使用实例:

$ which grep

5. type

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

type命令的使用实例:

$ type cd#系统会提示,cd是shell的自带命令(build-in)。$ type grep#系统会提示,grep是一个外部命令,并显示该命令的路径。$ type -p grep #加上-p参数后,就相当于which命令

二、find

Linux下的文件表达格式非常复杂(自由),不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式(linux命名很自由,程序的执行也不靠后缀)那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。比如说CentOS 5.O和CentOS 6.0中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的一个配置文件是相当困难的。学会使用并精通find,能够让我们避免吃这些苦头,,顺利的在各个版本中找到想要的文件。

find的使用格式具体:

find [option] [查找路径] [查找条件] [处理动作]查找路径:默认当前目录查找条件:默认查找指定路径下的所有文件处理动作:默认为显示

直接上图吧。。。用文字写,我自己估计看了都会吐,不要说各位看官了。

这张图已做得我黯然神伤,但是我对find的理解确实是有了质的变化,希望每一位看到的朋友能喜欢,至少我自己是喜欢的,我女朋友也说挺好看的。已经没有力气再举例子一一说明了。同时看了下面两篇博文之后更是被深深折服,觉得从此find不用其他的博文参考了。

强荐:开源中国两篇find神级(卖萌,咳咳)博文,强烈推荐给每一位想要征服find的linuer,希望每一位看到我博客的人都能细读。

妈咪,我找到了! — 15个实用的Linux find命令示例

爹地,我找到了!, 15个极好的Linux find命令示例

本文出自 “狐狸胡” 博客,请务必保留此出处

往事是尘封在记忆中的梦,而你是我唯一鲜明的记忆,

文件查找之find优良体验

相关文章:

你感兴趣的文章:

标签云: