无法完全理解 Unix 'find' 命令的手册

Léo*_* 준영 2 unix documentation

我发现 Find 手册的概要难以阅读 替代文本 http://files.getdropbox.com/u/175564/syntax_manual.png

假设您正在查找具有 777 权限的目录。 Pixelbeat的建议是

find -type d ! -perm -777
Run Code Online (Sandbox Code Playgroud)

我的 OS/X 给出了以下内容

find: illegal option -- t
find: illegal option -- y
find: illegal option -- p
find: illegal option -- e
find: d: No such file or directory
Run Code Online (Sandbox Code Playgroud)

在使用概要作为帮助时我不确定的事情

  • 无法看到将选项放在哪里-type我可以清楚地测试这个,但我想学习更好地阅读手册,这样我就不需要寻求帮助了。
  • 无法理解为什么我们需要两行概要:似乎强调许多路径是可选的
  • 为什么 Pixelbeat 在命令中使用感叹号?

让我们再举一个 Grep 手册的例子。

替代文字 http://files.getdropbox.com/u/175564/grep_manual.png

它有一个清晰的概要,虽然我只会用一行。我可以直接看到我们可以通过 grep

grep -r "masi" .
Run Code Online (Sandbox Code Playgroud)

你如何阅读类似于 Find 手册的手册?

Zor*_*che 11

首先要意识到的是,并非所有的 find 命令都是一样的。您将在 Linux 系统上找到的结果与在基于 BSD 的系统(如 OSX)上找到的结果不同。您要使用的参考适用于 Linux。

对于 find 命令,'-type' 选项是一个表达式并且必须在路径之后。如果您进一步阅读手册页,它将描述哪些选项是表达式。

感叹号是表示否定。也就是说,它返回除具有 777 权限的内容之外的所有内容。

命令“ find -type d ! -perm -777 ”无效,因为您没有在表达式之前包含路径。您可以使用. 如果想要当前目录。

回到主要问题。有时仅阅读手册页的摘要是不够的,您实际上必须阅读其余部分。有些命令非常强大,除非您阅读或至少浏览整个文档,否则您将无法很好地了解如何使用该命令。检查示例是否存在也很有帮助,或者如果它们不存在,请在线查找一些示例。


kub*_*zyk 5

你没有指定目录

find . -type d ! -perm -777
Run Code Online (Sandbox Code Playgroud)

您引用的手册页指出pathname应该在expression之前。所以在这种情况下,一个点“。” 出现在“ -type d ... ”之前。后者本身不是选项。事实上-type-perm是布尔表达式的一部分, find 试图评估每个文件。