Usando o sh
shell (não bash
), qual comando no Linux / UNIX imprime meu diretório atual?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Usando o sh
shell (não bash
), qual comando no Linux / UNIX imprime meu diretório atual?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Respostas:
Tente pwd
.
$ pwd
/home/<username>
/dev
é algo sobre o desenvolvimento (códigos fonte ou algo parecido)
Embora a resposta geral seja pwd
, observe que isso pode gerar resultados diferentes, dependendo de como você alcançou um determinado diretório e se a rota incluiu links simbólicos.
Por exemplo, se você tiver um diretório chamado real
e um link simbólico para esse diretório chamado virtual
e você cd
para o virtual
diretório, pwd
mostrará esse virtual
nome de diretório, mesmo que o diretório atual em que você esteja seja real
.
Para mostrar o diretório subjacente real, use pwd -P
ou readlink -f
(para um caminho arbitrário):
$ mkdir real $ ln -s real virtual $ cd virtual $ pwd / home / nome de usuário / tmp / virtual $ pwd -P / home / nome de usuário / tmp / real $ readlink -f. / home / nome de usuário / tmp / real
Observe que os shells geralmente substituem o pwd
comando por sua própria versão interna, portanto no meu sistema (RHEL6), mesmo que a pwd(1)
página do manual sugira que --physical
funcionará tão bem quanto -P
, porque estou executando bash
, não funciona:
$ pwd --physical opção bash: pwd: -: inválida pwd: uso: pwd [-LP] $ / bin / pwd --physical / home / nome de usuário / tmp / real $ / usr / bin / env pwd --physical / home / nome de usuário / tmp / real
Como outros disseram, pwd
geralmente faz o trabalho suficientemente bem. No entanto, gostaria de acrescentar uma ideia que me ajudou.
Em todos os shells de uso comum hoje em dia, você pode personalizar a aparência do prompt de comando. Eu gosto de personalizar o meu para que ele me mostre o nome do computador em que estou e meu diretório de trabalho. Dessa forma, eu sempre sei onde estou. (A parte do nome do computador me ajuda a perceber se a janela do terminal que estou usando foi usada para SSH em um servidor remoto.) Por exemplo, quando abro uma nova janela do terminal no meu laptop, que chamo de Plastico, vejo o seguinte:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Você pode ver que está abreviando meu diretório pessoal como ~
. Acho que fazer isso pelos meus prompts de terminal é incrivelmente útil - sempre sei de imediato exatamente onde estou, ainda mais do que faria olhando para uma janela do Finder.
No tcsh, faço isso adicionando set prompt = 'Plastico %~%# '
ao meu arquivo .tcshrc no meu diretório pessoal. Também fiz isso no ksh adicionando export PS1="Plastico $PWD $ "
ao meu arquivo .profile. Mas, como usuário de Linux, você provavelmente usa o Bash, com o qual não tenho muita experiência (sou uma pessoa estranha assim). Mas parece que posso fazê-lo adicionando PS1="Plastico \w $ "
ao meu arquivo .bashrc.
Edit: Acabei de notar que o OP indica que você está interessado em sh, não no bash. Ah bem; espero que as pessoas achem isso útil independentemente.
Plastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >
ou algo parecido.
$ pwd
/your/current/directory
$
pwd
vem do diretório de trabalho de impressão .
Nome
pwd - imprime o nome do diretório atual / ativo
Sinopse
pwd [OPÇÃO] ...
Descrição
Imprima o nome do arquivo completo do diretório de trabalho atual.
-L , --logical
use PWD do ambiente, mesmo que contenha links simbólicos
-P , --físico
evite todos os links simbólicos
--Socorro
exibir esta ajuda e sair
--versão
informações da versão de saída e saída
NOTA: seu shell pode ter sua própria versão do pwd, que geralmente substitui a versão descrita aqui. Por favor, consulte a documentação do seu shell para detalhes sobre as opções que ele suporta.
(...)