linux根据文件内容查找文件 linux按文件内容查找

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令 。二、which命令查找类型:二进制文件;检索范围:PATH环境变量里面指定的路径中查找;通过which命令可以快速返回某
一、前言
Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令 。

linux根据文件内容查找文件 linux按文件内容查找

文章插图
二、which命令
查找类型:二进制文件;
检索范围:PATH环境变量里面指定的路径中查找;
通过which命令可以快速返回某个指定命令的位置信息 。

linux根据文件内容查找文件 linux按文件内容查找

文章插图
优点:查找速度快;
缺点:仅支持二进制文件;
三、whereis命令
查找类型:二进制文件,man帮助文件,及源代码文件;
检索范围:/usr目录
通过whereis命令可以快速返回某个指定命令的位置信息,及其man文件和源代码文件的位置信息(如果存在的话) 。
当然也可以通过参数指定返回某一类查找结果:
-b: 仅查找二进制文件;
-m: 仅查找man帮助文件;
-s: 仅查找源代码文件;

linux根据文件内容查找文件 linux按文件内容查找

文章插图
优点:查找速度快;
缺点:查找文件类型及范围均有限;

四、locate命令
查找类型:所有文件;
检索范围:locatedb数据库;

locate是Linux系统提供的一种快速检索全局文件的系统命令,它并不是真的去检索所以系统目录,而是检索一个数据库文件locatedb(Ubuntu系统位置/var/cache/locate/locatedb),该数据库文件包含了系统所有文件的路径索引信息,所以查找速度很快 。

Linux系统动创建这个数据库,并且每天动更新次,所以对于新变动的文件(如新安装或新拷贝)使locate命令是查不到的 。为了避免这种情况,可以在使locate命令之前,先执行一下\\\”sudo updatedb\\\”命令来手动更新数据库 。

linux根据文件内容查找文件 linux按文件内容查找

文章插图
优点:查找速度快,且支持所有文件类型;
缺点:不支持新变动的文件检索,需要手动更新数据库;

五、find命令
【linux根据文件内容查找文件 linux按文件内容查找】查找类型:所有文件;
检索范围:指定路径;

find命令是Linux最强大的查找命令,参数多,用法丰富,下面演示一些常用的搜索方法 。

基本用法:$ find <检索路径> <选项> <搜索内容>
可以指定完整的文件名称,也可以使用通配符进行模糊查找 。

linux根据文件内容查找文件 linux按文件内容查找

文章插图
可以指定文件类型进行查找:
-type d: 查找目录;
-type f: 查找普通文件;
-type l: 查找软链接文件;

linux根据文件内容查找文件 linux按文件内容查找

文章插图
还有最强大的组合命令用法,比如将find+xargs+grep组合检索返回的文件是否包含指定字符串;find+xargs+cp组合将返回结果拷贝到指定目录下;

linux根据文件内容查找文件 linux按文件内容查找

文章插图
上面命令中的\\\”-i\\\”与\\\”{}\\\”是配套使用的,\\\”-i\\\”表示将前面find命令的标准输出作为参数传递给\\\”{}\\\”;而\\\”{}\\\”作为后面cp命令的第一个参数 。

优点:功能强大,且支持组合命令;
缺点:如果指定的检索路径层级复杂,则检索速度较慢;

    推荐阅读