linux命令:定位文件位置(find、whereis、which、locate) | 您所在的位置:网站首页 › linux查看当前所在位置命令 › linux命令:定位文件位置(find、whereis、which、locate) |
这篇文章主要介绍linux中定位文件位置相关命令的用法。 目录 一、比较二、find三、whereis四、which五、locate 一、比较1、find 硬盘搜索,查询速度较慢,但是输出准确。 2、locate 数据库查询,由于该数据库不是实时更新,故存在新建文件查询不到、已删文件的脏读问题。查询速度快。 3、which 主要用于可执行文件的查询。 4、whereis 定位可执行文件、源文件、帮助文件位置。查询数据库,速度较快存在输出数据不准确的问题。 二、find1、语法 find [目录] [选项] [动作]2、选项说明 (1)-name 、-iname 选项 根据指定的文件名查找文件,其中使用 -iname 可以忽略大小写; find [目录] -name [文件名]find 命令是精准搜索,即精准的搜索指定目录下与文件名完全匹配的文件,如果需要模糊搜索的话,可以使用正则表达式。 (2)-size 选项 根据指定的文件大小查找文件; -size选项后面的动作是指定的文件大小,可以在动作前加上 + / - 符号来表示查找大于 / 小于指定大小的文件,不加则表示查找等于该指定大小的文件。查找文件的默认单位是块( 1 块 = 512 字节 = 0.5KB),可以在数字后面添加指定字符来改变单位,常用的单位有 c (字节)、k(k字节)、M(M字节)、G(G字节)。 find [目录] -size [+/-]unitsize注意: 默认单位为块,一个文件块是 512 字节,当一个文件小于 512 字节时,也是会被当成一个块的大小来对待的。 (3)-user 选项 搜索指定所有者的文件; (4)-group 选项 搜索指定组的所有文件; (5)-amin 选项 查找指定时间内被访问的文件,单位是分钟; find /etc -amin -5 // 查找 /etc 目录下5分钟内被访问过的文件 find /etc -amin +5 // 查找 /etc 目录下5分钟之前被访问过的文件(6)-cmin 选项 查找指定时间内文件属性被改变了的文件,单位是分钟; 用法与 -amin 选项一样,但是功能不同。 (7)-mmin 选项 查找指定时间内文件内容被改变了的文件,单位是分钟; 用法与 -mmin 选项一样,但是功能不同。 (8)-a 选项 and,用于连接两个条件,表示要两个条件同时满足; (9)-o 选项 or,用于连接两个条件,表示两个条件满足一个即可; (10)-type 选项 根据文件类型查找,后面可以接 f、d、l,分别代表文件类型、目录类型和软链接文件。 find /etc -type f 三、whereis1、语法 whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]whereis指令会在特定目录中查找符合条件的文件。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。 2、参数说明 参数说明-b只查找二进制文件。-B只在设置的目录下查找二进制文件。-f不显示文件名前的路径名称。-m只查找说明文件。-M只在设置的目录下查找说明文件。-s只查找原始代码文件。-S只在设置的目录下查找原始代码文件。-u查找不包含指定类型的文件。 四、which1、语法 which [文件...]which是通过PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件 。 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。 2、参数说明 参数说明-n指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p与-n参数相同,但此处的包括了文件的路径。-w指定输出时栏位的宽度。-V显示版本信息 五、locate1、安装 yum search locate2、语法 locate [-d ][--help][--version][范本样式...]使用 -i 选项可以忽略大小写。 locate 命令与 find -name 命令功能一样,可以用来查找文件或目录 ,但是要比 find 命令查找起来速度快很多。这是因为 locate 命令并不搜索具体的目录,而是搜索一个数据库 /var/lib/mlocate/mlocate.db。这个数据库包含本地绝大多数文件的信息(不包括 /tmp 目录下的文件)。Linux 系统会自动创建这个数据库,并且每天都会自动更新一次。 locate 命令所搜索的数据库不是即时更新的。因此,如果你新创建了一个文件,想要立即使用 locate 搜索这个文件,是搜索不到的;同样,如果你删除了一个文件,然后立即使用 locate 命令,仍然可以搜索到这个文件。因此,在使用 locate 命令之前,我们希望数据库是更新了的,可以使用 updatedb 命令手动更新数据库(首次安装locate后,最好也先执行updatedb命令),然后再使用 locate 命令,就不会出现上述问题了。此外, /tmp 目录不在 mlocate.db 的查找范围内,因此如果你在 /tmp 目录下新建了一个文件,然后更新数据库,再使用 locate 命令查找,也是查找不到的。 3、注意 locate命令是通过文件名称查找文件所在位置的。 whereis命令是查找bin程序用的。 |
CopyRight 2018-2019 实验室设备网 版权所有 |