Que comando na shell sh do Linux/UNIX devolve o meu directório actual?
Usando o sh
shell (não bash
), que comando em Linux/UNIX imprime o meu directório actual?
$ *showmewhereiam*
/sys/kernel/debug
$
Usando o sh
shell (não bash
), que comando em Linux/UNIX imprime o meu directório actual?
$ *showmewhereiam*
/sys/kernel/debug
$
Experimente pwd
.
$ pwd
/home/<username>
```.
Embora a resposta geral seja pwd
, note que isto pode dar resultados diferentes, dependendo de como se chegou a um determinado directório, e se a rota incluiu ligações simbólicas.
Por exemplo, se tiver um directório chamado real
e um link simbólico para esse directório chamado virtual
, e se cd
para o directório virtual
, então pwd
mostrará que virtual
nome do directório, mesmo que o directório real em que se encontra seja real
.
Para mostrar o verdadeiro directório subjacente, use pwd -P
ou readlink -f
(para um caminho arbitrário):
$ mkdir real $ ln -s real virtual $ cd virtual $ pwd /home/_username_/tmp/virtual $ pwd -P /home/_username_/tmp/real $ readlink -f . /home/_username_/tmp/real
Note que os shells substituem frequentemente o comando pwd
pela sua própria versão interna, por isso no meu sistema (RHEL6), embora a página do manual pwd(1)
sugira que --physical
funcionará tão bem como -P
, porque estou a correr bash
, não funciona:
$ pwd --physical bash: pwd: --: invalid option pwd: usage: pwd [-LP] $ /bin/pwd --physical /home/_username_/tmp/real $ /usr/bin/env pwd --physical /home/_username_/tmp/real
$ pwd
/your/current/directory
$
pwd
provém do directório de trabalho de impressão*.
Nome
pwd* - nome de impressão do directório de trabalho/corrente
Sinopse
pwd [OPÇÃO]…
& > # Descrição & > Imprimir o nome completo do directório de trabalho actual.
-L , –lógico
usar PWD do ambiente, mesmo que contenha links simbólicos
-P , –físico
evitar todas as ligações simbólicas & > –ajuda*
mostrar esta ajuda e sair & > –versão
informação da versão de saída e sair & > NOTA: a sua concha pode ter a sua própria versão de pwd, que normalmente substitui a versão aqui descrita. Consulte a documentação da sua concha para obter detalhes sobre as opções que suporta.
(…)
Como outros disseram, pwd
normalmente faz o trabalho suficientemente bem. Contudo, gostaria de acrescentar uma ideia que me tem ajudado.
Em todas as conchas em uso comum hoje em dia, é possível personalizar o aspecto do prompt de comando. Gosto de personalizar o meu para que me mostre tanto o nome do computador em que estou como o meu directório de trabalho. Dessa forma, sei sempre onde estou. (A parte do nome do computador ajuda-me a perceber se a janela do terminal que estou a utilizar foi utilizada para SSH num servidor remoto). Por exemplo, quando abro uma nova janela de terminal no meu portátil, a que chamo Plastico, vejo isto:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Vê-se que está a abreviar o meu directório home como ~
. Acho que fazer isto para os meus avisos terminais é incrivelmente útil - sei sempre num relance exactamente onde estou, ainda mais do que o faria olhando para uma janela do Finder.
Em tcsh, faço isto adicionando set prompt = 'Plastico %~%# '
ao meu ficheiro .tcshrc no meu directório home. Fi-lo também no ksh adicionando export PS1="Plastico $PWD $ "
ao meu ficheiro .profile. Mas sendo um utilizador de Linux, provavelmente usa o Bash, com o qual não tenho muita experiência (sou um esquisito como esse). Mas parece talvez o possa fazer adicionando PS1="Plastico \w $ "
ao meu ficheiro .bashrc.
Editar: Acabei de notar que o OP afirma que está interessado em sh, não em bash. Oh bem; espero que as pessoas achem isto útil independentemente disso.