使用搜索命令的时候,如果搜索范围过大,则会给服务器造成巨大的压力,所以不要在服务器访问高峰期执行大范围搜索命令。
whereis 命令
项目 | 内容 |
---|---|
命令名称 | whereis |
英文原意 | locate the binary,source,and manual page files for a command |
所在路径 | /usr/bin/whereis |
执行权限 | 所有用户 |
作用 | 查找二进制命令、源文件和帮助文档的命令 |
命令格式
whereis [选项] 命令
选项:
-b: 只查找二进制命令
-m: 只查找帮助文档
常用用法
- 查看命令
- 不能查看普通文件
- 使用选项
which 命令
项目 | 内容 |
---|---|
命令名称 | which |
英文原意 | shows the full path of (shell) commands |
所在路径 | /usr/bin/which |
执行权限 | 所有用户 |
作用 | 列出命令的所在路径 |
与 whereis 的区别
- which: 查找二进制命令(可执行文件)
- whereis: 查找二进制命令的同时,查找到帮助文档
locate 命令
项目 | 内容 |
---|---|
命令名称 | locate |
英文原意 | fubd fukes by name |
所在路径 | /usr/bin/locate |
执行权限 | 所有用户 |
作用 | 按照文件名搜索文件 |
命令格式
locate [选项] 文件名
选项:
-i: 忽略大小写
常用用法
- 基本用法
可以搜索普通文件
也可以搜索系统文件
- locate 命令的数据库
使用中,可能会发现如下问题:
这是因为,locate 命令不会直接搜索硬盘,而会搜索 locate 数据库,优点是耗费资源小、搜索速度快;缺点是不能实时更新,需要等用户退出或者重启系统才更新,所以无法查找新建立的文件。
如果不想重启,可以使用如下命令:
- locate 配置文件
发现这样依然会找不到文件,为什么呢?来看看 locate 配置文件就明白了
这是 locate 时禁止搜索的拓展名、目录和文件系统。而 /tmp 在名单内,所有搜索不到。
find 命令
项目 | 内容 |
---|---|
命令名称 | find |
英文原意 | search for files in a directory hierarchy |
所在路径 | /bin/find |
执行权限 | 所有用户 |
作用 | 在目录中搜索文件 |
命令格式
find 搜索路径 [选项] 搜索内容
选项:
-name: 按照文件名搜索
-iname: 按照文件名搜索,不区分文件名的大小写
-inum: 按照 inode 号搜索
-size [+-]大小: 按照指定大小搜索文件
-atime [+-]时间: 按照文件访问时间
-mtime [+-]时间: 按照文件修改时间
-ctime [+-]时间: 按照文件状态修改时间
-perm 权限模式: 查找文件的权限刚好等于 "权限模式" 的文件
-perm -权限模式: 查找文件的权限全部包含 "权限模式" 的文件
-perm +权限模式: 查找文件的权限至少包含一个 "权限模式" 的文件
-user 用户名: 按照所有者查找文件
-group 组名: 按照所属组查找文件
-nouser: 查找没有所有者的文件
-type d/f/l: 查找目录/普通文件/软连接文件
-a/-o/not: 逻辑 与、或、非
常用用法
- 按照文件名搜索
注意,find 命令是完全匹配的,即搜 hello.c,就不会搜 hello.c.a。
还可以使用不区分大小写的 -iname 命令,用法相同;
还有 inum,这个可以用来区分硬链接文件。 - 按照文件大小搜索
- 搜索指定大小文件
- 搜索比指定大小大的文件
- 搜索比指定大小小的文件
关于大小的单位:
- 按照修改时间搜索
主要解释 [±] 含义。比如用 mtime :
-5 :代表 5 天内修改的文件
5 : 代表前 5~6 天修改的文件
+5:代表6天前修改的文件
注意 mtime ,ctime, atime 的单位是天,还可以用 mmin,cmin,amin 单位是分钟。