Linux Shell 操作命令 目录总览(点击查看详细信息) https://blog.51cto.com/11495268/2338219
1, 简介
find 命令主要作用是沿着文件层次结构向下遍历, 匹配符合条件的文件, 并 执行相应的操作
2, 用法 / 命令格式
find [-H] [-L] [-P] [-D {debugopts}] [-O {level}] [starting-point...] [expression]
3, 常用参数解析 -- 参数 选项
-H,-L 和 -P 选项 用于 符号 连接 处理; 如果 搜索 路径 没有 被 指定, 则默认 当前 所在 路径 为 搜索路径
4, 常用参数解析 -- 表达式
搜索 路径 之后的 一连串的表达式 用于 匹配 搜索 的结果; 如果 没有 表达式, 则 默认 -print 参数 表达式
4.1 Actions -- 执行 表达式
执行 表达式 一般 会有 副作用 (例如 打印 一些 信息 输出到 标准输出 ) 并且 返回 true or false (取决于 执行 是否 成功); 例如 -print 将 信息 输出到 标准输出
4.1.1 -print
默认 -print 参数
4.1.2 -exec
-exec 是 find 命令对找到的文件执行的动作, 这个动作就是对找到的文件执行命令; 在这里说明一下 {} 和;,{}其实它就是一个占位符, 在 find 命令的执行过程中会不断地替换成当前找到的文件; 而 ";" 是 - exec 的命令结束标记, 因为规定 - exec 后面的命令必须以; 结束, 但; 在 shell 中有特殊含义, 必须要转义, 所以写成 \;
4.2 Global options -- 全局 表达式
全局表达式 影响 任何 结果输出, 通常 返回 true
4.2.1 -type
字母 "f" 表示该文件是一个普通文件
字母 "l" 表示该文件是一个链接文件
字母 "b" 表示该文件是块设备文件(block), 一般置于 / dev 目录下, 设备文件是普通文件和程序访问硬件设备的入口, 一类特殊文件
字母 "c" 表示该文件是一个字符设备文件(character)
字母 "d" 表示该文件是一个目录
字母 "p" 表示该文件为命令管道文件
字母 "s" 表示该文件为 sock 文件
4.3 Positional options -- 位置(正则) 表达式
一般不会 太复杂, 暂不详细解释
4.4 Operators -- 逻辑 表达式
-and: 匹配如果操作符两边的测试条件都是真. 可以简写为 - a. 注意若没有使用操作符, 则默认使用 - and
-or: 匹配若操作符两边的任一个测试条件为真. 可以简写为 -o
-not: 匹配若操作符后面的测试条件是假. 可以简写为一个感吸号(!)
(): 把测试条件和操作符组合起来形成更大的表达式. 这用来控制逻辑计算的优先级. 默认情况下, find 命令按照! 从左到右的顺序计算. 经常有必要重写默认的求值顺序, 以得到期望的结果. 即使没有必要, 有时候包括组合起来的字符, 对提高命令的可读性是很有帮助的. 注意因为圆括号字符对于 shell 来说有特殊含义, 所以在命令行中使用它们的时候, 它们必须用引号引起来, 才能作为实參传递给 find 命令. 通常反斜杠字符被用来转义圆括号字符
5, 范例
5.1 打印 当前 目录 文件 列表信息
- ## -print 也可 不写, 一般 默认 打印
- # find . [-print]
5.2 模糊 匹配
- ## -i : 忽略 大小写
- ## *,? : 模糊匹配,* 匹配 多个 任意字符, ? 匹配 单个 任意字符
- # find . [-i] -name "*.tx?" [-print]
5.3 多个 文件 类型查找
- ## -or : 逻辑 或
- ## !: 逻辑 非
- # find . \( -name "*.txt" -or ! -name ".csv" \)
5.4 联合 查找 并 查看 相信 信息
- ## -perm: 用户权限
- ## -user: 用户名
- # find . -type f \( -name "*.php" -perm 777 -or ! -user root \) -exec ls -l {
- } \;
5.5 查找 大文件
# find . -type f -size +800M
来源: http://www.bubuko.com/infodetail-2986753.html