我知道这两个命令做同样的事情:
ls -la
ls -al
但我想知道它们之间是否有任何偏好。以某种方式对它们进行排序是否是更好的做法?
答案1
除非命令明确提及,否则这并不重要*。我遇到过任何参考资料,提供如何将选项一个接一个地放置的指南。所以我认为为了便于阅读,可以按字母顺序排列选项。
*有一个非常非常重要的警告,那就是如果任何选项需要文件名或在其后紧接着的任何其他输入,则需要相应地输入它。
例如,-f
选项grep
将文件作为输入,以便从输入文件中获取要查找的模式。您需要给出以下命令:
grep -cf input.txt file.txt
如果你像这样使用它:
grep -fc input.txt file.txt
它将会失败,因为它将用作c
文件名。
答案2
这POSIX惯例定义在实用程序语法指南中的第 11 条和第 12 条该命令不应该有关系“除非该实用程序本身没有记录。
这GNU C 库参考手册也遵守 POSIX 约定25.1.1 程序参数语法约定。
但请注意,有几种实用程序在某些情况下会给出如何执行参数的严格命令(例如 find)。从查找手册页:
测试在测试
-name
之前进行-type
,以避免必须调用stat(2)
每个文件。
有时公用事业会对订购提出抱怨。
答案3
使用 ls,选项的排序几乎不会出错。
但请注意,其他命令可能根据顺序对选项有不同的响应。
例如 find 命令。您将得到不同的结果,例如:
find . -ls -mtime -1
和
find . -mtime -1 -ls
答案4
就像其他人回答的那样,这并不重要(除非另有记录或选项参数需要进一步的参数)。
但按字母顺序排列选项是否更好仍有争议。
就我个人而言,我发现助记符比严格的字母顺序更有价值。当一组选项形成一个令人难忘的单词时,更容易记住它们,例如,考虑:
netstat -tan
# alphabetic is good (by chance) in this case
netstat -ant
与:
netstat -atn
netstat -nta
因此,如果您发现自己重复了某个命令的某个选项组合,您可能需要尝试将字母重新排列成最容易记住的顺序。