linux-command
linux-command copied to clipboard
关于`find`命令的补充
网站关于find
命令的部分内容和man7.org中的find描述有些出入。
网站原文:
用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。
man7.org原文(OpenAI翻译后):
-H、-L 和 -P 选项控制符号链接的处理方式。这些选项后的命令行参数被视为待检查的文件或目录名称,直到遇到以
-
开头的参数,或(
、!
参数为止。该参数及其后的所有参数被视为描述搜索内容的表达式。
关于语法部分的内容,缺少了The five real options
也就是-H、-L、-P、-D 和-O
。在网站中列出的选项应该是表达式中的选项。
man7.org中完整的语法:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [起始点...] [表达式]
而且需要补充的是,表达式是由一系列元素组成:
- Tests:测试返回一个真或假值,通常基于我们正在考虑的文件的某个属性。例如,-empty 测试仅在当前文件为空时为真。
- Actions:操作具有副作用(例如在标准输出上打印内容),并返回真或假,通常基于它们是否成功。例如,-print 操作会在标准输出上打印当前文件的名称。
- Global options:全局选项影响命令行中任何部分指定的测试和操作的执行。全局选项始终返回真值。例如,-depth 选项使 find 以深度优先的顺序遍历文件系统。
- Positional options:位置选项仅影响其后的测试或操作。位置选项始终返回真值。例如,-regextype 选项是位置选项,用于指定命令行中后续正则表达式所使用的正则表达式方言。
- Operators:运算符将表达式中的其他项连接起来。例如,它们包括 -o(表示逻辑或)和 -a(表示逻辑与)。如果缺少运算符,则默认使用 -a。
建议可以将选项
中的内容按以上进行分类。