linux find的用法
的有关信息介绍如下:
Linux find 命令用法详解
find 是 Linux 和类 Unix 操作系统中一个非常强大的命令行工具,用于在目录树中递归地搜索文件和目录。它提供了丰富的选项和表达式,可以根据文件名、类型、大小、修改时间等多种条件进行筛选。以下是 find 命令的基本语法和一些常用示例:
基本语法
find [起始目录] -name/-iname/-type/-size/-mtime/-perm 等选项 [表达式] -exec/-ok/-print 等操作- 起始目录:指定从哪个目录开始搜索。如果省略,默认为当前目录(.)。
- 选项:用于定义搜索条件和匹配标准。
- 表达式:进一步细化搜索条件,可以是逻辑运算符(如 -and, -or, -not)或括号组合。
- 操作:对找到的每个文件执行的操作,如 -exec, -ok, -print 等。
常用选项
按名称查找
- -name <pattern>:按文件名查找,区分大小写。find /path/to/search -name "filename"
- -iname <pattern>:按文件名查找,不区分大小写。find /path/to/search -iname "Filename"
按类型查找
- -type <type>:根据文件类型查找。常见类型有 f(普通文件)、d(目录)、l(符号链接)等。find /path/to/search -type d
按大小查找
- +n:大于 n 块(512 字节为一块)。
- -n:小于 n 块。
- n:恰好等于 n 块。
按修改时间查找
- -mtime n:在 n 天前被修改的文件。
- -mmin n:在 n 分钟前被修改的文件。
- -newer <file>:比指定文件更新的文件。find /path/to/search -mtime -7 # 最近 7 天内修改过的文件
按权限查找
- -perm <mode>:精确匹配权限模式(八进制表示)。
- /<mode>:任何一位匹配即可(例如 /600 表示用户可读写)。
- -<mode>:所有位都必须匹配(例如 -600 表示用户读写且组和其他无权限)。find /path/to/search -perm 755
逻辑运算
- -and 或 -a:逻辑与。
- -or 或 -o:逻辑或。
- -not 或 !:逻辑非。find /path/to/search \( -name "*.txt" -or -name "*.md" \) -and -size +1k
常用操作
打印输出
- -print:默认操作,将找到的文件名打印到标准输出。find /path/to/search -name "*.log" -print
执行命令
- -exec <command> {} \;:对找到的每个文件执行指定的命令。{} 代表当前文件名,\; 结束 -exec 参数。find /path/to/search -name "*.tmp" -exec rm {} \;
确认后执行
- -ok <command> {} \;:类似于 -exec,但在执行命令之前会提示用户确认。find /path/to/search -name "*.bak" -ok rm {} \;
组合使用
可以将多个选项和操作组合起来,以实现复杂的搜索需求。例如,查找并删除最近 30 天未修改且大小超过 10MB 的日志文件:
find /var/log -type f -name "*.log" -mtime +30 -size +10M -exec rm {} \;通过掌握这些基本语法和常用选项,你可以利用 find 命令高效地管理和查询系统中的文件和目录。



