Документация "Общие команды 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, если каталог был успешно изменен; ложь в противном случае.