Documentação sobre “Comandos Gerais do BSD”

3

Eu me encolho para fazer essa pergunta, mas para muitos comandos no OS-X e provavelmente em outros sistemas POSIX, é difícil encontrar a documentação necessária no comandos incorporados .

Por exemplo, se eu quiser descobrir qual é a opção -P do comando cd , esperaria man cd para me dizer, mas, infelizmente, isso me leva à temida página "Comandos Gerais do BSD" .

Muitos desses comandos (todos?) não suportam as opções --help , então o melhor que eu consegui fazer é induzir uma mensagem de uso concisa dando uma opção inválida. Por exemplo:

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

Eu encontrei a seção de comando simples do padrão POSIX e que parece útil, mas tenho a sensação de que estou sentindo falta de algo fundamental. Não deveria ser tão difícil.

Qual é a maneira correta de obter informações detalhadas sobre o uso de comandos internos?

    
por Codie CodeMonkey 15.05.2013 / 11:44

2 respostas

5

Uma maneira fácil de obter ajuda sobre comandos incorporados sem percorrer a página do manual do shell é 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.
    
por 15.05.2013 / 12:53
4

cd é um shell embutido, como você pode ver, digitando type CMD :

$ type cd
cd is a shell builtin

A documentação nos built-ins do shell está nas páginas do manual do shell, sh (1) , bash (1) e bash-builtins (1) , sob o título Comandos internos , Comandos internos do Shell , ou Comandos Bash Builtin ; por exemplo:

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

    Change the current directory to dir.  The variable HOME is the default dir.  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 in CDPATH is the same as the current directory, i.e., “.”.  If dir begins with a slash (/), then CDPATH is not used.  The -P option says to use the physical directory structure instead of following symbolic links (see also the -P option to the set builtin command); the -L option forces symbolic links to be followed.  If the -e option is supplied with -P, and the current working directory cannot be successfully determined after a successful directory change, cd will return an unsuccessful status.  An argument of - is equivalent to $OLDPWD.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.  The return value is true if the directory was successfully changed; false otherwise.
    
por 15.05.2013 / 12:03