Dokumentacja „Ogólne polecenia BSD”

3

Krzyczę, aby zadać to pytanie, ale dla wielu poleceń w OS-X i prawdopodobnie w innych systemach POSIX, trudno mi znaleźć potrzebną dokumentację na wbudowane polecenia .

Na przykład, jeśli chcę dowiedzieć się, co -P opcja cd komenda, jak się spodziewałam man cd powiedz mi, ale niestety doprowadza mnie do przerażenia „Ogólne polecenia BSD” strona.

Wiele z tych poleceń (wszystkie?) Nie obsługuje --help opcje, więc najlepsze, co mogłem zrobić, to wywołać zwięzłą wiadomość o użyciu, podając nieprawidłową opcję. Na przykład:

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

znalazłem prosta sekcja poleceń standardu POSIX i wydaje się to przydatne, ale mam wrażenie, że brakuje mi czegoś fundamentalnego. To nie powinno być takie trudne.

Jaki jest właściwy sposób uzyskania szczegółowych informacji o użytkowaniu wbudowanych poleceń?

Codie CodeMonkey
źródło

Odpowiedzi:

5

Łatwym sposobem uzyskania pomocy na temat wbudowanych poleceń bez przechodzenia przez stronę podręcznika powłoki jest 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.
terdon
źródło
Tak, z jakiegoś powodu nie jest to tak dobrze znane, dowiedziałem się o tym dopiero niedawno i korzystam z Linuksa od ponad dziesięciu lat.
terdon
To działa nawet dla busybox
artistoex
4

cd jest wbudowaną powłoką, jak widać, wpisując type CMD :

$ type cd
cd is a shell builtin

Dokumentacja dotycząca wbudowanych powłok znajduje się na stronach man powłoki, sh (1) , bash (1) , i bash-builtins (1) , pod nagłówkiem Wbudowane polecenia , Polecenia wbudowane powłoki , lub Wbudowane polecenia Bash ; na przykład:

Płyta CD [ -L | [ -P [ -mi ]]] [ reż ]

    Zmień bieżący katalog na reż . Zmienna HOME jest domyślne reż . Zmienna CDPATH definiuje   ścieżka wyszukiwania katalogu zawierającego reż .   Alternatywne nazwy katalogów w CDPATH są rozdzielone   dwukropek ( : ). Null nazwa katalogu w CDPATH jest   taki sam jak bieżący katalog, tj. „ . ” Jeśli reż zaczyna się ukośnikiem ( / ), następnie CDPATH nie jest używany.   The -P opcja mówi o użyciu fizycznej struktury katalogów   zamiast podążać za dowiązaniami symbolicznymi (patrz także -P opcja do set wbudowane polecenie); -L opcja   wymusza przestrzeganie symbolicznych linków. Jeśli -e opcja jest dostarczana z -Pi bieżąca praca   katalogu nie można pomyślnie określić po   pomyślna zmiana katalogu, cd zwróci nieudany status.   Argument z - jest równa $OLDPWD. Jeśli nie jest pusta nazwa katalogu CDPATH jest   używane lub jeśli - jest pierwszym argumentem i katalogiem   zmiana się powiodła, bezwzględna ścieżka nowej   katalog roboczy jest zapisywany na standardowe wyjście.   Zwracana wartość jest prawdziwa, jeśli katalog został pomyślnie zmieniony;   false w przeciwnym razie.
artistoex
źródło