1. Find 命令介绍
find
命令是在Linux和UNIX系统中用于搜索文件和目录的强大工具。它可以根据文件名、类型、大小、权限、所有者、修改日期等条件来查找文件。
1.1. 功能
- 递归地搜索符合条件的文件和目录。
- 根据多种不同的条件进行文件查找。
1.2. 用途
- 查找系统中的文件和目录。
- 用于脚本中自动化文件管理任务。
- 用于备份和恢复任务,查找大文件或旧文件。
1.3. 基本用法
find [path...] [expression]
path
:指定搜索的起始目录。expression
:定义搜索条件的表达式。
1.4. 常用命令参数
参数 | 描述 |
| 按照文件名查找。 |
| 指定文件类型(例如 表示文件, 表示目录)。 |
| 按照文件大小查找。 |
| 按照文件内容上次修改时间查找。 |
| 按照文件所有者查找。 |
| 按照文件所属的用户组查找。 |
| 按照文件权限查找。 |
| 指定查找的最大深度。 |
| 指定查找的最小深度。 |
| 对匹配的文件执行指定的命令。 |
| 打印匹配的文件名(默认操作)。 |
| 删除匹配的文件。 |
1.5. 示例
1.5.1. 查找指定目录下的所有文件和目录
find /path/to/directory -type f -o -type d
1.5.2. 查找名为 "example.txt" 的文件
find /path/to/directory -name "example.txt"
1.5.3. 查找最近7天修改过的文件
find /path/to/directory -mtime -7
1.5.4. 查找大小大于10MB的文件
find /path/to/directory -size +10M
1.5.5. 查找属于用户 "john" 的文件
find /path/to/directory -user john
1.5.6. 查找权限为755的文件
find /path/to/directory -perm 755
1.5.7. 查找并删除名为 ".bak" 的文件
find /path/to/directory -name "*.bak" -delete
find
命令非常灵活,可以通过组合不同的参数和操作来满足复杂的文件查找需求。
1.5.8. 查找三天之前的日志文件并删除或者压缩
find /var/log -type f -name "*.log" -mtime +3 | xargs rm -f
find /var/log -type f -name "*.log" -mtime +3 -exec rm -f {} \;
find /var/log -type f -name "*.log" -mtime +3 -exec rm -f {} +
#在平常使用-exec时\;和+没有什么区别,但是在使用打包压缩的时候一定要使用+
find /var/log -type f -name "*.log" -mtime +3 -exec tar -zcf /tmp/wxx.tar.gz {} +
直接上图展示
find /var/log -type f -name "*.log" -mtime +3 -exec tar -zcf /tmp/wxx.tar.gz {} \;
find /var/log -type f -name "*.log" -mtime +3 -exec tar -zcf /tmp/wxx.tar.gz {} +