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á.