Linux:搜索命令

whereis

whereis是搜索系统命令的命令,不能搜索普通文件。用于查找二进制命令、源文件和帮助文档的命令。

which

which也是搜索系统命令的命令,与whereis的区别:

  • whereis命令可以查找到二进制命令的同时,还能查找到帮助文档的位置。
  • which命令可以查找到二进制命令的同时,还能查找到命令别名位置。

image-20200919211653982

查看系统所有的别名:alias

image-20200919211721773

locate

locate可以按照文件名搜索普通文件的命令。centos7中默认没有安装这个命令,所以要yum install mlocate。

优点:按照数据库搜索,搜索速度快,数据库位置/var/lib/mlocate/mlocate.db

缺点:只能按照文件名搜索,而不能执行更加复杂的搜索(时间,权限、大小等)

执行locate由可能报错,如下图所示,可以执行updatedb更新数据库。

image-20200919212638172

locate的配置文件:

image-20200919213225448

find

在目录中搜索文件

find 搜索路径 [选项] 搜索内容
选项: -name 按照文件名搜索
     -iname 按照文件名搜索,不区分大小写
     -inum 按照inode搜索
     -size [+|-]大小 按照指定大小搜索文件
     -atime [+|-]时间 按照文件访问时间搜索(time的默认时间是天)
     -mtime [+|-]时间 按照文件数据修改时间搜索
     -ctime [+|-]时间 按照文件状态修改时间搜索
     -perm 权限模式 查找文件权限刚好等与权限模式的文件
     -perm -权限模式 查找文件权限包含权限模式的文件
     -perm +权限模式 查找文件权限包含权限模式的任意一个权限的文件
     -uid 用户ID 按照用户ID查找所有者是指定ID的文件
     -gid 组id 按照用户组ID查找所属组是指定ID的文件
     -user 用户名 按照用户名查找所有者是指定用户名的文件
     -group 组名 按照组名查找所属组是指定用户组的文件
     -nouser 查找没有所有者的文件
     -type 文件类型 查找指定类型的文件,注意type=f时,指的是查找普通文件

man find中,对-size的解释:

 -size n[cwbkMG] File uses n units of space.  The following suffixes can be used:
              ‘b’ for 512-byte blocks (this is the default if no suffix is used)  默认单位
              ‘c’ for bytes
              ‘w’ for two-byte words
              ‘k’ for Kilobytes (units of 1024 bytes)
              ‘M’ for Megabytes (units of 1048576 bytes)
              ‘G’ for Gigabytes (units of 1073741824 bytes)

逻辑运算符

find 搜索路径 [选项] 搜索内容
选项: -a and逻辑与
      -o or逻辑或
      -not not逻辑非
      ! 与-not含义相同

例如:查找当前目录下文件名时abc或者时def的文件。

find . -name abc -o -name def

-exec选项:

find 搜索路径 [选项] 搜索内容 -exec 命令 {} ;

该命令表示把find的结果交由给exec调用的命令来处理,{}表示find命令查找的结果。比如查找/opt目录下文件a,并输出a文件的内容,如下图。

image-20200919221635705

查找/tmp十天前的文件,并删除:

find /tmp -mtime +10 -exec  rm -rf {} ;

-ok选项:

与-exec类似,exec会直接执行,而ok会在命令处理前询问用户是否这样处理。

原文地址:https://www.cnblogs.com/wwjj4811/p/13697942.html