find
- find 命令 - -name <pattern> 提供待匹配的文件名 pattern 
- -regex <pattern> 使用 EMACS regex 语法匹配文件路径(注意不是文件名) 
- -maxdepth <non-negative-number> 控制搜索的最大深度 
- -mindepth <non-negative-number> 控制搜索的最小深度 
- -exec <commands> ; 对匹配到的每个文件执行 command - 执行时将 command 中的 {} 替换为当前匹配到的文件 
- exec 读入 command 内容时到分号为止 
- 为了防止被 shell 替换,一般把 {} 和 ; 保护起来,如 '{}' 和 ; 
- 一个能运作的例子: - find . -maxdepth 1 -name "*.lbl" -exec echo '{}' \;查找当前目录下所有后缀为 .lbl 的文件并打印文件名
 
- man find 中的 OPERATORS 一节提供了参数级别的搜索条件运算 - () 可以提升运算的优先级,但要写成 \( \) 转义,且和其他参数之间以空格分隔 
- -a 以与关系连接两个搜索条件,当且仅当左侧条件满足时计算右侧条件 
- -o 以或关系连接两个搜索条件,当且仅当左侧条件不满足时计算右侧条件 
- 一个能运作的例子: - find . -maxdepth 1 \( -name '*.typ' -o -name '*.lbl' \) -exec echo '{}' \;查找当前目录下所有后缀为 .typ 或 .lbl 的文件并打印文件名
 
 
Last updated
Was this helpful?