资讯专栏INFORMATION COLUMN

Linux笔记(二):搜索文件

honhon / 1972人阅读

摘要:刚刚删除的文件还在搜索结果中。只能用于搜索可执行文件,联机帮助文件和源代码。如需要获得更全面的搜索结果可使用命令。相比以上两个,中更常用的查找命令时,它在环境变量中指定的路径来搜索可执行文件。这只是查询条件。

Linux内置了5个文件搜索命令。各有特色,满足不同场景下的需求。

$ whereis ls

这样就可以找到‘ls’命令和它的联机帮助文档所在的位置。where命令非常快,因为它是在专门的数据库中来查询(/var/lib/mlocate)。这个数据库是Linux系统自动创建,包含所有的本地文件信息,每天通过自动执行updatedb命令更新一次。因为这个原因,会使得whereis命令的结果有时候会不正确。如刚添加的文件可能找不到。刚刚删除的文件还在搜索结果中。如果需要获得准确的搜索结果,手动执行updatedb命令即可。

虽然whereis命令简单高效,但是功能有限。只能用于搜索可执行文件,联机帮助文件和源代码。如需要获得更全面的搜索结果可使用locate命令。它和wheris使用相同的数据库,,但locate使用了复杂的匹配语法。

$ locate ls

这样会匹配到文件名中和路径中出现过‘ls’的文件。因为结果太多,搜索结果太多,不能使用,需要使用精确搜索,可以这样:

$ locate -b "ls"

这样会将所有文件名wei‘ls’的文件列出。
因为locate和whereis机制相同,所以会有相同的缺点。为了的速度,就会牺牲准确性。

相比以上两个,linux中更常用的查找命令时which,它在$PATH环境变量中指定的路径来搜索可执行文件。常用来它来确定系统中是否安装了制定的软件。如涌来确认是否安装gcc:

$ which gcc

如果有,会返回程序安装路径。如果没有,则会报错。

$ type if

从名字上看,看不出type拥有任何文件搜索能力。
type是用来判断一个命令是否属于shell内置的。如果是非内置的shell命令,使用了-p的选项,type就相当于世which命令了。。这么看来,type可以归属到搜索命令的范围内,

$ find

这是一个非常复杂的命令 。
直接写例子了。

$ find / -mtime 3 查找三天前发生变化的所有文件
$ find / -mtime -3 查询三天内发生变化的所有文件 
$ find / -mtime +3 查询三天以前发生变化的所有文件

类似对于这样精确的查询条件设置,find有太多太多了。这只是查询条件。
find不仅可以设置十分精确的查询条件。还能对找到的文件做什么动作。比如要列出一天以内变化文件的详细信息

$ find / -mtime -l -exec ls -l {} ;

重点说一下-exec以后的部分:
-exec是find命令对找到文件的执行动作,这个动作就是对找到文件的执行命令。这个执行命令就卸载它的后面,在上面的例子中是‘ls -l {}’。"{}"是一个占位符,在find命令的执行过程中会被不断的替换当前找到的文件。下一个疑惑点事结尾处的‘;’。Liunx的联机帮助上说-exec的命令结束标记是";",如果在实际过程中,按照帮助文章中的编写,会出现报错,find不能执行。这是因为‘;’在bash环境中有特殊的含义,所以需要使用""来转义。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15054.html

相关文章

  • Linux笔记():搜索文件

    摘要:刚刚删除的文件还在搜索结果中。只能用于搜索可执行文件,联机帮助文件和源代码。如需要获得更全面的搜索结果可使用命令。相比以上两个,中更常用的查找命令时,它在环境变量中指定的路径来搜索可执行文件。这只是查询条件。 Linux内置了5个文件搜索命令。各有特色,满足不同场景下的需求。 $ whereis ls 这样就可以找到‘ls’命令和它的联机帮助文档所在的位置。where命令非常快,...

    Alan 评论0 收藏0
  • centos rocksdb 性能测试笔记()

    摘要:接着性能测试笔记一然后我就考虑使用禁用写入缓存,在下发现一直报驱动错误。关键是关机重启之后,测试时取中数据时发现系统仍然在不断的增加。官方要求内核最低版本。也就是限定了容器使用的内存只有,哪怕是系统现在就进行愉快的测试吧。。 接着centos rocksdb 性能测试笔记(一)然后我就考虑使用hdparm禁用写入缓存,在centos下发现一直报驱动错误。在ubuntu上面禁用write...

    wanglu1209 评论0 收藏0
  • centos rocksdb 性能测试笔记()

    摘要:接着性能测试笔记一然后我就考虑使用禁用写入缓存,在下发现一直报驱动错误。关键是关机重启之后,测试时取中数据时发现系统仍然在不断的增加。官方要求内核最低版本。也就是限定了容器使用的内存只有,哪怕是系统现在就进行愉快的测试吧。。 接着centos rocksdb 性能测试笔记(一)然后我就考虑使用hdparm禁用写入缓存,在centos下发现一直报驱动错误。在ubuntu上面禁用write...

    brianway 评论0 收藏0
  • centos rocksdb 性能测试笔记()

    摘要:接着性能测试笔记一然后我就考虑使用禁用写入缓存,在下发现一直报驱动错误。关键是关机重启之后,测试时取中数据时发现系统仍然在不断的增加。官方要求内核最低版本。也就是限定了容器使用的内存只有,哪怕是系统现在就进行愉快的测试吧。。 接着centos rocksdb 性能测试笔记(一)然后我就考虑使用hdparm禁用写入缓存,在centos下发现一直报驱动错误。在ubuntu上面禁用write...

    baishancloud 评论0 收藏0
  • open-falcon 开发笔记):环境配置【续】

    摘要:网络配置问题通常采用的是网络地址转换的连接方式。这种做法是临时的更改。手动配置请选用各地延迟排行榜。永久性做法是去配置。至此,笔者已经安装了大部分的功能,还有等辅助组件木有安装。预计这方面不大会再出现未知坑了。 这篇文章会先讲一些上次没解决的坑。正所谓探索过程中没去搞懂的坑以后还会再来困扰你的。 VirtualBox 网络配置问题 通常 VirtualBox 采用的是 NAT(网络地址...

    SHERlocked93 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<