Я знаю, что эти две команды делают одно и то же:
ls -la
ls -al
но мне интересно, есть ли между ними какие-либо предпочтения. Лучше практиковать, чтобы заказать их определенным образом?
command-line
Тим
источник
источник
Ответы:
На самом деле это не имеет значения *, если в команде не указано иное. Я не встречал упоминаний, в которых бы содержалось что-то вроде указания, как размещать варианты один за другим. Поэтому я думаю, что для удобства чтения варианты могут быть расположены в алфавитном порядке.
* Существует очень и очень важный кавает, который заключается в том, что если какой-либо опции нужно имя файла или любой другой ввод сразу после него, вам нужно указать его соответствующим образом.
Например,
-f
опцияgrep
принимает файл в качестве входных данных, чтобы взять шаблон для поиска из входного файла. Вы должны дать команду как, например:Если вы используете это как:
это потерпит неудачу, поскольку это будет использовать
c
в качестве имени файла.источник
Соглашения POSIX определяют в Руководящих принципах 11 и 12 Руководства по синтаксису служебных программ, что порядок " не должен иметь значения », если он не задокументирован для самой утилиты.
В GNU C Library Reference Manual также отличием этих конвенций POSIX в 25.1.1 Программа Синтаксис аргументов конвенций .
Но обратите внимание, есть несколько утилит, которые в некоторых ситуациях дают строгие указания, как выполнять параметры (например, находить). Из справочной страницы поиска :
Иногда утилита жалуется на порядок.
источник
find
есть только несколько опций, POSIX определяет только две опции-H
и-L
. У GNUfind
в Ubuntu есть еще несколько опций, но-type
и-name
т. Д. Считаются операторами , а не опциями . А для операторов порядок обычно имеет значение.С ls вы вряд ли ошибетесь с упорядочением опций.
Но помните, что другие команды могут иметь разные ответы на опции в зависимости от порядка.
Примером является команда find. Вы получите разные результаты, например, между:
И
источник
Если то, что вы хотите практиковать, это алфавитные короткие строки, возможно. Я считаю две стратегии полезными: составление слов (уменьшает количество опечаток) и составление предложений (улучшает понимание).
Например, для ls я обычно использую,
ls -halF
потому что даже при странной заглавной букве я лучше набираю halF, чем что-то вроде Falh , но это не слово.Для tar, с другой стороны, я
tar czvf filename
набираю и говорю (в своей голове) «tar Create and Zip, Verbosely For filename», потому что именно так я узнал, что означают разные буквы.источник
Как и другие ответили, это не имеет значения (если не задокументировано иное, или аргументы опции принимают дополнительные аргументы).
Но это предпочтительнее варианта заказа по алфавиту спорен.
Лично я считаю, что мнемоника обеспечивает большую ценность, чем строгий алфавитный порядок. Проще запомнить набор опций, когда они образуют запоминающееся слово, например, рассмотрим:
против:
Поэтому, если вы обнаружите, что повторяете определенную комбинацию параметров для команды, вы можете попытаться изменить порядок букв в порядке, который вам будет проще запомнить.
источник