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