Experimente pwd
.
$ pwd
/home/<username>
Usando o shell sh
(não bash
), qual comando no Linux / UNIX imprime meu diretório atual?
$ *showmewhereiam*
/sys/kernel/debug
$
Embora a resposta geral seja pwd
, observe que isso pode dar resultados diferentes dependendo de como você chegou a 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 diretório virtual
, então pwd
mostrará esse diretório virtual
nome, mesmo que o diretório em que você está 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/username/tmp/virtual $ pwd -P /home/username/tmp/real $ readlink -f . /home/username/tmp/real
Observe que os shells geralmente substituem o comando pwd
por sua própria versão interna, portanto no meu sistema (RHEL6), embora a página de manual pwd(1)
sugira que --physical
funcionará tão bem quanto -P
, porque Estou executando bash
, isso não acontece:
$ 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
Como outros disseram, pwd
normalmente faz o trabalho bem o suficiente. No entanto, gostaria de acrescentar uma ideia que me tenha ajudado.
Em todos os shells comuns atualmente, 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 o SSH em um servidor remoto.) Por exemplo, quando abro uma nova janela de terminal no meu laptop, que eu chamo de Plastico, vejo isto:
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 para os meus prompts de terminal é incrivelmente útil - eu sempre sei exatamente onde estou, mais ainda do que olhando uma janela do Finder.
No tcsh, faço isso adicionando set prompt = 'Plastico %~%# '
ao meu arquivo .tcshrc no meu diretório pessoal. Eu fiz isso no ksh também adicionando export PS1="Plastico $PWD $ "
ao meu arquivo .profile. Mas sendo um usuário do Linux, você provavelmente usa o Bash, o qual eu não tenho muita experiência (eu sou um esquisito assim). Mas parece que eu posso ser capaz de fazer isso adicionando PS1="Plastico \w $ "
ao meu arquivo .bashrc.
Editar: Apenas percebi que o OP indica que você está interessado em sh, não em bash. Ah bem; espero que as pessoas achem isso útil independentemente.
$ pwd
/your/current/directory
$
pwd
vem do diretório de trabalho de impressão .
Name
pwd - print name of current/working directory
Synopsis
pwd [OPTION]...
Description
Print the full filename of the current working directory.
-L, --logical
use PWD from environment, even if it contains symlinks
-P, --physical
avoid all symlinks
--help
display this help and exit
--version
output version information and exit
NOTE: your shell may have its own version of pwd, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports.
(...)