你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

对 Linux 下文件搜索命令进行一个科普

[复制链接]
gaosmile 发布时间:2020-6-16 21:53
在系统里查找文件,是所有工程师都必备的技能(不管你用的是 Windows 、Linux、还是 MacOS 系统)。对于 Linux 操作系统,单单一个 find 命令就可以完成非常多的搜索工作。
但是,文件搜索命令远不止一个 find 命令,还有很多。本文就对 Linux 下文件搜索命令进行一个科普,让你能够在短时间内找到自己需要的文件。
  1. find  

find 命令应该是最经典的命令了,谈到搜索工具第一个想到的肯定是 find 命令。但是,find 命令非常强大,想要把它的功能都介绍一遍,恐怕要写好几篇文章。
所以,这里就偷个懒,介绍最基本的,根据文件名查找文件的方法。假如我们想搜索当前目录(及其子目录)下所有 .sh 文件,可以这样搜索:
微信图片_20200616215104.jpg
  2. locate  

locate 是另外一个根据文件名来搜索文件的命令。区别于 find 命令,locate 命令无需指定路径,直接搜索即可。
这个命令不是直接去系统的各个角落搜索文件,而是在一个叫 mlocate.db 的数据库下搜索。这个数据库位于 /var/lib/mlocate/mlocate.db ,它包含了系统里所有文件的索引,并且会在每天早上的时候由 cron 工具自动更新一次。
正因为如此,locate 的搜索速度远快于 find 命令,因为它直接在数据库里检索,速度自然更快。
locate 命令在找到文件之后,将直接显示该文件的绝对路径,比如:
微信图片_20200616215108.jpg
但是 locate 命令有个弊端,它无法搜索当天所创建的文件,因为它的数据库一天只在早上更新一次。比如我现在创建一个新文件,locate 没办法搜索到:
微信图片_20200616215111.jpg
为了解决这个问题,我们可以使用 updatedb 命令手动去更新它的数据库:
$ sudo updadb
然后,我们就可以搜索到新文件了。
微信图片_20200616215114.jpg
  3. which  

which 命令主要用来查找可执行文件的位置,它搜索的位置指定在 $PATH 及 $MANPATH 环境变量下的值,默认情况下,which 命令将显示可执行文件的第一个存储位置:
微信图片_20200616215117.jpg
如果某个可执行文件存储在多个位置,可以使用 -a 选项列出所有的位置。
如果你想一次性查找多个文件,可以直接跟在 which 命令后面即可。
微信图片_20200616215121.jpg
  4. whereis  

whereis 命令会在系统默认安装目录(一般是有root权限时默认安装的软件)查找二进制文件、源码、文档中包含给定查询关键词的文件。(默认目录有 /bin, /sbin, /usr/bin,/usr/lib, /usr/local/man等类似路径)。
一般包含以下三部分内容:
  • 二进制文件的路径
  • 二进制文件的源码路径
  • 对应 man 文件的路径

比如我们现在搜索 ls 命令:
微信图片_20200616215124.jpg
我们可以使用 -b 选项来只搜索可执行文件所在位置,使用 -B 选项指定搜索位置,使用 -f选项列出文件的信息。
微信图片_20200616215128.jpg
同样地,我们可以使用 -s 限定只搜索源码路径,使用 -m 搜索 man page 路径,使用 -s 指定搜索源代码文件的路径,使用 -M 指定搜索帮助文件的路径。

收藏 评论1 发布时间:2020-6-16 21:53

举报

1个回答
desk1983 回答时间:2020-6-16 22:29:55

非常好的资料,对初学者很有帮助;
希望楼主多多分享,赠人玫瑰,手有余香,念念不忘,必有回响;.

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版