Я знаю, что эти две команды делают одно и то же:
ls -la
ls -al
но мне интересно, есть ли между ними какие-либо предпочтения. Лучше практиковать, чтобы заказать их определенным образом?
Я знаю, что эти две команды делают одно и то же:
ls -la
ls -al
но мне интересно, есть ли между ними какие-либо предпочтения. Лучше практиковать, чтобы заказать их определенным образом?
Ответы:
На самом деле это не имеет значения *, если в команде не указано иное. Я не встречал упоминаний, в которых бы содержалось что-то вроде указания, как размещать варианты один за другим. Поэтому я думаю, что для удобства чтения варианты могут быть расположены в алфавитном порядке.
* Существует очень и очень важный кавает, который заключается в том, что если какой-либо опции нужно имя файла или любой другой ввод сразу после него, вам нужно указать его соответствующим образом.
Например, -fопция grepпринимает файл в качестве входных данных, чтобы взять шаблон для поиска из входного файла. Вы должны дать команду как, например:
grep -cf input.txt file.txt
Если вы используете это как:
grep -fc input.txt file.txt
это потерпит неудачу, поскольку это будет использовать cв качестве имени файла.
Соглашения POSIX определяют в Руководящих принципах 11 и 12 Руководства по синтаксису служебных программ, что порядок " не должен иметь значения », если он не задокументирован для самой утилиты.
В GNU C Library Reference Manual также отличием этих конвенций POSIX в 25.1.1 Программа Синтаксис аргументов конвенций .
Но обратите внимание, есть несколько утилит, которые в некоторых ситуациях дают строгие указания, как выполнять параметры (например, находить). Из справочной страницы поиска :
-nameИспытание приходит перед-typeиспытанием для того , чтобы избежать того , чтобы звонитьstat(2)по каждому файлу.
Иногда утилита жалуется на порядок.
Если то, что вы хотите практиковать, это алфавитные короткие строки, возможно. Я считаю две стратегии полезными: составление слов (уменьшает количество опечаток) и составление предложений (улучшает понимание).
Например, для ls я обычно использую, ls -halFпотому что даже при странной заглавной букве я лучше набираю halF, чем что-то вроде Falh , но это не слово.
Для tar, с другой стороны, я tar czvf filenameнабираю и говорю (в своей голове) «tar Create and Zip, Verbosely For filename», потому что именно так я узнал, что означают разные буквы.
Как и другие ответили, это не имеет значения (если не задокументировано иное, или аргументы опции принимают дополнительные аргументы).
Но это предпочтительнее варианта заказа по алфавиту спорен.
Лично я считаю, что мнемоника обеспечивает большую ценность, чем строгий алфавитный порядок. Проще запомнить набор опций, когда они образуют запоминающееся слово, например, рассмотрим:
netstat -tan
# alphabetic is good (by chance) in this case
netstat -ant
против:
netstat -atn
netstat -nta
Поэтому, если вы обнаружите, что повторяете определенную комбинацию параметров для команды, вы можете попытаться изменить порядок букв в порядке, который вам будет проще запомнить.