1、find指令
基本语法:find [搜索范围] [选项]
功能:将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
常用选项:
操作 | 命令示例 | 说明 |
查找指定路径下的所有文件 | find /path/to/dir | 查找指定目录下的所有文件和目录。 |
查找指定名称的文件 | find /path/to/dir -name "filename" | 查找指定名称的文件(支持通配符)。例如:find . -name "*.txt" 查找所有.txt文件。 |
查找指定类型的文件 | find /path/to/dir -type f | 查找所有普通文件。-type d查找目录,-type l查找符号链接。 |
查找修改时间在指定范围内的文件 | find /path/to/dir -mtime +7 | 查找修改时间超过 7 天的文件。-mtime -7查找修改时间在过去 7 天内的文件。 |
查找文件大小符合条件的文件 | find /path/to/dir -size +100M | 查找大小大于 100MB 的文件。+ 表示大于,-表示小于,c表示字节,k表示 KB,M表示 MB。 |
查找并执行命令 | find /path/to/dir -name "*.log" -exec rm {} \; | 查找.log文件并删除。{}是每个匹配的文件,\;表示命令结束。 |
查找符合条件并显示详细信息 | find /path/to/dir -name "*.txt" -exec ls -l {} \; | 查找.txt文件并显示详细信息。 |
查找目录并排除特定目录 | find /path/to/dir -type d ! -name "exclude_dir" | 查找目录,排除名为exclude_dir的目录。 |
查找具有特定权限的文件 | find /path/to/dir -perm 644 | 查找权限为 644 的文件。 |
查找大于特定大小的文件 | find /path/to/dir -size +100M | 查找文件大小大于 100MB 的文件。 |
查找符合多个条件的文件 | find /path/to/dir -name "*.txt" -size +1M | 查找.txt文件且大小大于 1MB 的文件。 |
查找并显示文件的 inode 号 | find /path/to/dir -name "*.log" -printf "%i %p\n" | 查找.log文件并显示文件的 inode 号和路径。 |
- -name:按文件名进行匹配,可以使用通配符(如 *)。
- -type:按文件类型进行匹配。常见类型有:
- f:普通文件
- d:目录
- l:符号链接
- -mtime:按文件修改时间进行匹配。+n 表示超过 n 天,-n 表示过去 n 天内,n 表示正好 n 天。
- -size:按文件大小进行匹配。可以使用 k、M、G 等单位。
- -exec:执行命令。{} 是一个占位符,表示每个匹配到的文件,\; 表示命令结束。
- -printf:自定义输出格式,输出包括文件的 inode 号、路径、大小等信息。
示例:
按文件名:根据文件名称查找 /home 目录下的hello.txt 文件。没有文件不会有输出提示。
按拥有者:查找/opt 目录下,用户名称为 nobody 的文件
查找整个Linux系统下大于200M的文件(+n 大于 -n 小于 n 等于)
2、locate指令
基本语法:locate 搜索文件
功能:locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
注意:
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
示例:
使用locate 指令快速定位a.txt 文件所在目录
3、which指令
可以查看某个指令在哪个目录下
查看ls指令在哪个目录下
4、grep指令和管道符号 |
基本语法:grep [选项] 查找内容 源文件
功能:grep 过滤查找,管道符 | ,表示将前一个命令的处理结果输出传递给后面的命令处理
常用选项:
-n 显示匹配行及行号
-i 忽略字母大小写
示例:
在 hello.txt 中查找 yes 所在行并显示行号
(1)
(2)