whereis
whereis是搜索系统命令的命令,不能搜索普通文件。用于查找二进制命令、源文件和帮助文档的命令。
which
which也是搜索系统命令的命令,与whereis的区别:
- whereis命令可以查找到二进制命令的同时,还能查找到帮助文档的位置。
- which命令可以查找到二进制命令的同时,还能查找到命令别名位置。
查看系统所有的别名:alias
locate
locate可以按照文件名搜索普通文件的命令。centos7中默认没有安装这个命令,所以要yum install mlocate。
优点:按照数据库搜索,搜索速度快,数据库位置/var/lib/mlocate/mlocate.db
缺点:只能按照文件名搜索,而不能执行更加复杂的搜索(时间,权限、大小等)
执行locate由可能报错,如下图所示,可以执行updatedb更新数据库。
locate的配置文件:
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文件的内容,如下图。
查找/tmp十天前的文件,并删除:
find /tmp -mtime +10 -exec rm -rf {} ;
-ok选项:
与-exec类似,exec会直接执行,而ok会在命令处理前询问用户是否这样处理。