Документация "Общие команды BSD"

Я пытаюсь задать этот вопрос, но для многих команд в OS-X и, возможно, в других системах POSIX мне сложно найти необходимую документацию по встроенным командам.

Например, если я хочу узнать, что -P вариант cd команда делает, я бы ожидал man cd сказать мне, но увы, это приводит меня к страшной странице "Общие команды BSD".

Многие из этих команд (все?) Не поддерживают --help варианты, поэтому лучшее, что я смог сделать, это вызвать краткое сообщение об использовании, указав недопустимую опцию. Например:

~ $ cd --tell-me-something-I-didnt-know-damn-you
-bash: cd: --: invalid option
cd: usage: cd [-L|-P] [dir]

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

Как правильно получить подробную информацию об использовании встроенных команд?

2 ответа

Решение

Простой способ получить справку по встроенным командам без просмотра справочной страницы оболочки: help:

$ help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.

Change the current directory to DIR.  The default DIR is the value of the
HOME shell variable.

The variable CDPATH defines the search path for the directory containing
DIR.  Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory.  If DIR begins
with a slash (/), then CDPATH is not used.

If the directory is not found, and the shell option `cdable_vars' is set,
the word is assumed to be  a variable name.  If that variable has a value,
its value is used for DIR.

Options:
    -L  force symbolic links to be followed
    -P  use the physical directory structure without following symbolic
    links
    -e  if the -P option is supplied, and the current working directory
    cannot be determined successfully, exit with a non-zero status

The default is to follow symbolic links, as if `-L' were specified.

Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
-P is used; non-zero otherwise.

cd это встроенная оболочка, как вы можете видеть, набрав type CMD:

$ type cd
cd is a shell builtin

Документация по встроенным функциям оболочки находится в справочных страницах оболочки sh (1), bash (1) и bash-builtins(1) под заголовками Встроенные команды, Команды встроенной оболочки или Команды встроенной оболочки; например:

CD [ -L | [ -P [ -e ]]] [ dir ]

    Измените текущий каталог на dir. Переменная HOME это каталог по умолчанию. Переменная CDPATH определяет путь поиска для каталога, содержащего каталог. Альтернативные имена каталогов в CDPATH разделены двоеточием (:). Нулевое имя каталога в CDPATH совпадает с текущим каталогом, т.е. . ". Если dir начинается с косой черты (/), затем CDPATH не используется -P опция говорит использовать физическую структуру каталогов вместо следующих символических ссылок (см. также -P вариант к set встроенная команда); -L Опция заставляет следовать символическим ссылкам. Если -e опция поставляется с -P и текущий рабочий каталог не может быть успешно определен после успешного изменения каталога, cd вернет неудачный статус. Аргумент - эквивалентно $OLDPWD, Если непустое имя каталога из CDPATH используется, или если - является первым аргументом, и смена каталога прошла успешно, абсолютный путь к новому рабочему каталогу записывается в стандартный вывод. Возвращаемое значение равно true, если каталог был успешно изменен; ложь в противном случае.

Другие вопросы по тегам