A pergunta é sobre o Windows, mas você marcou linux então minha resposta se aplica para o Linux.
Toda vez que você invoca um comando, há algum diretório de trabalho no qual você está no momento; .
denota esse diretório. pwd
é um comando geral para saber o que é esse diretório. Ao trabalhar em um shell como bash
, você pode "ir" para outro diretório com cd /another/directory/path
.
Alguns comandos (como cd
acima) aceitam diretórios (ou seja, seus caminhos) como argumento (s). Agora estou com vontade de falar sobre fundamentos óbvios; mas sua pergunta parece ser básica, então aqui vamos nós. A sintaxe geral para passar um argumento para some_command
é como:
some_command argument
ou até mesmo número arbitrário de argumentos (quatro neste exemplo):
some_command argument1 argument2 "argument3 with spaces" argument4
Você pode usar .
como um argumento em vez do caminho retornado por pwd
. Se o comando o interpretar como um caminho para o diretório, ele deve ser entendido como o diretório de trabalho atual. Embora cd .
tenha pouco sentido porque faz com que seu shell "vá" para o mesmo diretório em que ele já está, a sintaxe é perfeitamente válida. Exemplo útil é
df .
Ele informa o uso de espaço em disco do sistema de arquivos em que seu diretório de trabalho atual reside.
Existem comandos que operam no diretório de trabalho atual por padrão: ls
é equivalente a ls .
, du
é equivalente a du .
. Observe que nem sempre é o caso: df
imprime todos os sistemas de arquivos disponíveis, enquanto df .
imprime apenas um deles.
Eu escrevi " se o comando o interpreta como um caminho para o diretório" porque alguns comandos não. Por exemplo. em bash
o comando
tr . , <<< foo.bar
imprimirá foo,bar
( tr
substitui .
por ,
na string foo.bar
fornecida). Isso ocorre porque tr
interpreta .
como uma string de caractere único.
Isso mostra que .
não é convertido para o caminho do diretório atual pelo shell. Compare isso com ~
, que é convertido para o valor de $HOME
(tente echo ~
in bash
). A interpretação de .
como um determinado caminho fica no projeto da árvore de diretórios no Linux (broader: no UNIX).
Assim, cada comando pode interpretar .
sozinho. Mas quando se trata de um caminho de diretório, a convenção é que ele deve ser o diretório de trabalho atual. O Linux entende isso e fornece ferramentas para suportar essa "conversão".
Observe também que ls -a
quase sempre imprime .
entre o conteúdo do diretório "real". Fica interessante quando seu diretório de trabalho atual é excluído. Nesse caso, ls -a
não imprime nada, mas ls .
ou df .
ainda funcionam, como se .
estivesse lá.