linux find指令详解
时间: 2023-07-05 13:24:58 浏览: 177
`find` 命令是在 Linux 系统中查找文件和目录的常用工具之一,它可以递归查找指定目录下符合条件的文件和目录。下面是 `find` 命令的详细用法说明:
```bash
find [path] [expression]
```
其中,`path` 是指查找的目录路径,可以是绝对路径或相对路径。如果未指定 `path`,则默认为当前目录。
`expression` 是一个或多个由操作符和参数组成的表达式,用于指定查找条件和操作。下面是一些常用的操作符和参数:
- `-name pattern`:查找文件名匹配 `pattern` 的文件,例如 `find /path -name "*.txt"` 将查找 `/path` 目录及其子目录下所有扩展名为 `.txt` 的文件。
- `-type type`:查找指定类型的文件,`type` 可以是以下之一:`f` 表示普通文件,`d` 表示目录,`l` 表示符号链接,`c` 表示字符设备,`b` 表示块设备,`p` 表示管道,`s` 表示套接字。
- `-mtime n`:查找最后修改时间在 `n` 天前的文件,例如 `find /path -mtime +7` 将查找 `/path` 目录及其子目录下最后修改时间在 7 天前的文件。
- `-size n`:查找文件大小为 `n` 块的文件,例如 `find /path -size +100M` 将查找 `/path` 目录及其子目录下文件大小大于 100 MB 的文件。
- `-exec command {} \;`:对查找到的文件执行指定命令,例如 `find /path -name "*.txt" -exec cat {} \;` 将查找 `/path` 目录及其子目录下所有扩展名为 `.txt` 的文件,并输出文件内容。
这些参数可以组合使用,例如 `find /path -type f -name "*.txt" -mtime +7 -exec rm {} \;` 将查找 `/path` 目录及其子目录下最后修改时间在 7 天前的扩展名为 `.txt` 的文件,并删除它们。
除了这些参数外,`find` 命令还支持一些高级用法,例如 `-maxdepth`、`-mindepth`、`-prune`、`-print` 等,您可以通过 `man find` 命令查看更多用法和示例。
阅读全文