查找:find、locate、which、whereis

有find 、 locate 、 which 、 whereis

一、find

 

命令格式:[root@localhost ~]# find 搜索路径 [选项] 搜索内容

find是比较特殊的命令,它有两个参数:

  • 第一个参数用来指定搜索路径;
  • 第二个参数用来指定搜索内容。

1、按照文件名搜索

find 搜索路径 [选项] 搜索内容

选项

  • -name: 按照文件名搜索;
  • -iname: 按照文件名搜索,不区分文件名大小;
  • -inum: 按照 inode 号搜索;

这是 find 最常用的用法。find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。

2、按照文件大小搜索

find 搜索路径 [选项] 搜索内容

选项:

  • -size[+-]大小:按照指定大小搜索文件

这里的"+"的意思是搜索比指定大小还要大的文件,"-" 的意思是搜索比指定大小还要小的文件。

find.-size +25k
#当前目录下大于25KB的文件

3、按照修改时间搜索

Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。

find搜索路径 [选项] 搜索内容

选项:

  • -atime [+-]时间: 按照文件访问时间搜索
  • -mtime [+-]时间: 按照数据修改时间搜索
  • -ctime [+-]时间: 按照状态修改时间搜索

这三个时间的区别我们在 stat 命令中已经解释过了,这里用 mtime 数据修改时间来举例,重点说说 "[+-]"时间的含义。

  • -5:代表@内修改的文件。
  • 5:代表前5~6天那一天修改的文件。
  • +5:代表6天前修改的文件。

4、按照权限搜索

在 find 中,也可以按照文件的权限来进行搜索。权限也支持 [+/-] 选项。

find 搜索路径 [选项] 搜索内容

选项:

  • -perm 权限模式:査找文件权限刚好等于"权限模式"的文件
  • -perm -权限模式:査找文件权限全部包含"权限模式"的文件
  • -perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件

5、按照所有者和所属组搜索

选项:

  • -uid 用户 ID:按照用户 ID 査找所有者是指定 ID 的文件
  • -gid 组 ID:按照用户组 ID 査找所属组是指定 ID 的文件
  • -user 用户名:按照用户名査找所有者是指定用户的文件
  • -group 组名:按照组名査找所属组是指定用户组的文件
  • -nouser:査找没有所有者的文件

6、按照文件类型

选项:

  • -type d:查找目录
  • -type f:查找普通文件
  • -type l:查找软链接文件

这个命令也很简单,主要按照文件类型进行搜索。在一些特殊情况下,比如需要把普通文件和目录文件区分开,比如需要把普通文件和目录文件区分开,使用这个选项就很方便。

二、locate

locate [选项] 文件

选项:

  • -d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
  • --help  在线帮助。
  • --version  显示版本信息。

说明:locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。因此locate比find快,并不是真正的查找,而是查数据库。locate的查找并不是实时的,而是以数据库的更新为准,所以有时候在即查不到,可以使用locate更新命令将数据库更新一下再查找,一般是系统自己维护,也可以手工升级数据库 ,命令为:

locate -u 
locate /etc/my
#etc目录下所有以my开头的文件

#新增的文件无法locate,需要updatedb更新
[root@cent6 ~]# touch new.txt
[root@cent6 ~]# locate new.txt
[root@cent6 ~]# updatedb
[root@cent6 ~]# locate new.txt
/root/new.txt

三、which

查找并显示给定命令的绝对路径,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

[root@localhost oa]# which php
/usr/local/php7/bin/php

四、whereis

搜索出二进制程序、源代码文件和man手册页等相关文件的路径。

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

[root@localhost oa]# whereis mysql
mysql: /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/local/mysql/bin/mysql

 

posted @ 2019-09-15 16:32  Austin_anheqiao  阅读(435)  评论(0编辑  收藏  举报