Длинные флаги командной строки в терминале?

651
Baggio Wong

Я надеюсь, что это правильное место, чтобы задать этот вопрос. В общем, в настоящее время я перебираю некоторые из наиболее часто используемых команд терминала, и мне очень трудно запомнить короткие флаги формы и длинные флаги формы.

Например,

ls -a

гораздо сложнее запомнить для меня, чем

ls --all

Очевидно, это тривиально запомнить для одного флага, но, учитывая количество программ, выполняемых через оболочку, и доступные флаги для каждой программы, становится действительно очень сложно зафиксировать их в памяти.

Однако, когда я ищу по страницам руководства, например,

man ls

Документы не показывают флаги длинных форм. Например, это то, что я получаю

-1 (The numeric digit ``one''.) Force output to be one entry per line. This is the default when output is not to a terminal.  -A List all entries except for . and ... Always set for the super- user.  -a Include directory entries whose names begin with a dot (.). 

Я ищу что-то вроде этой веб-страницы:

http://manpages.ubuntu.com/manpages/xenial/en/man1/ls.1.html

-a, --all do not ignore entries starting with .  -A, --almost-all do not list implied . and ..  --author with -l, print the author of each file 

но доступно в автономном режиме.

Я использую MacOS и запускаю man через Terminal - есть ли альтернативные руководства, показывающие флаги полной формы? Я был бы очень признателен, если бы кто-то указал мне правильное направление.

Спасибо!

2

1 ответ на вопрос

1
Kamil Maciorowski

Инструмент в целом есть man .

lsРеализация Ubuntu отличается от реализации в macOS. Если ls --allу вас работает, но на странице руководства в вашей ОС нет длинных опций, то будет разумно рассматривать их как недокументированные функции, которые могут перестать работать или изменить их значение в будущем.

Обратите внимание, что POSIX определяет только короткие параметры дляls . Предпочитая их длинным эквивалентам (если они есть), ваш « lsнавык» становится более переносимым.

При проверке, ls --allдействительно ли работает, не путайте это с ls -all. Последний должен быть эквивалентны ls -a -l -l, то есть ls -a -l; он использует только короткие опции и будет работать в любой POSIX-совместимой системе.

Понятно - спасибо за ответ. Я думаю, что при просмотре я буду просматривать страницы с флагами длинных форм, но во время реализации буду использовать короткие флаги, помня о том, что вы сказали - что эти MacOS Mac Ubuntu и короткие формы предпочтительнее. Я проверил, и ls --all не работает в терминале. :) Baggio Wong 6 лет назад 0