我应该按照命令的字母顺序排列标志吗?


Answers:


15

除非命令有明确提及,否则它并不重要*。我没有遇到任何参考,它给人一种指导方针,即如何一个接一个地放置期权。因此,我认为出于可读性考虑,可以按字母顺序排列选项。

*有一个非常重要的提示,即是否有任何选项需要文件名或其他任何输入,然后才需要相应地输入它。

例如,使用-f选项grep将文件作为输入,以采用要从输入文件中查找的模式。您需要给出命令,例如:

grep -cf input.txt file.txt 

如果您像这样使用它:

grep -fc input.txt file.txt 

它将失败,因为它将c用作文件名。


12

POSIX约定在界定准则11和实用程序语法准则12的命令“ 要不要紧 ”,除非它不记录的实用程序本身。

GNU C库参考手册也是荣誉的POSIX约定25.1.1程序参数语法约定

但是请注意,在某些情况下,有一些实用程序会给严格的命令指定如何执行参数(例如find)。从查找手册页

-name测试在测试之前-type进行,以避免必须调用stat(2)每个文件。

有时,实用程序会抱怨订购。


3
严格来说,find只有几个选项,POSIX仅定义了两个选项-H-L。在GNU find在Ubuntu有一些更多的选择,但-type-name等被认为是运营商,而不是选择。对于运营商来说,订购通常很重要。
盖尔哈2015年

5

使用ls,您几乎不会出错。

但是请注意,尽管其他命令可能对命令有不同的响应,具体取决于顺序。

查找命令就是一个例子。例如,您将获得不同的结果:

  find . -ls -mtime -1 

  find . -mtime -1 -ls

3

如果您想练习的是将短字符串按字母顺序排列。我发现两种有用的策略:造词(减少错别字)和造句(提高理解力)。

例如,对于ls来说,我通常会使用它,ls -halF因为即使有奇怪的大写字母,我在输入halF方面也Falh之类的字词更好。

另一方面,对于tar,我输入tar czvf filename并说“ tar创建并压缩,为文件名详细”,因为这是我了解不同字母的含义的方式。


我记得e2fsck -fvcckt,因为如果它返回了太多错误,它就说明了我可能遇到的情况。;)

2

就像其他人回答的一样,这无关紧要(除非另有说明,否则选项参数将包含其他参数)。

但是,按字母顺序订购期权是否值得商bat。

就个人而言,我发现助记符比严格的字母顺序提供更多的价值。当一组选项组成一个令人难忘的单词时,记住它们比较容易,例如,请考虑:

netstat -tan
# alphabetic is good (by chance) in this case
netstat -ant

vs:

netstat -atn
netstat -nta

因此,如果发现自己重复执行某个命令的某些选项组合,则可能需要尝试将字母重新排列为最容易记住的顺序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.