linux-command icon indicating copy to clipboard operation
linux-command copied to clipboard

关于`find`命令的补充

Open hotdogc1017 opened this issue 7 months ago • 4 comments

网站关于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。

建议可以将选项中的内容按以上进行分类。

hotdogc1017 avatar Jul 10 '24 02:07 hotdogc1017