Outros já explicaram o que .
e o que ..
significa (diretório atual e diretório pai, respectivamente). Isso se aplica a todos os nomes de caminho.
Quando você abre um terminal, geralmente inicia no diretório inicial: ~
(que se expande para /home/username
). Os caminhos abaixo são todos equivalentes, desde que o diretório de trabalho atual seja /home/username
:
/home/username
.
../username
../../home/username
../../../home/username
(o diretório pai de /
ainda está /
)
./././././.
(o diretório atual no diretório atual no ...)
./
(barras finais são permitidas para diretórios)
/home////username///
(e também várias barras)
Você não confundir ./program
com . program
. ./program
executa um arquivo no diretório atual com o bit de execução definido. . ./program
é uma coisa do bash e, alternativamente, pode ser escrito, pois source ./program
lê os comandos do program
arquivo no diretório atual e os executa no shell atual.
Se você se pergunta por que simplesmente pode executar em gedit
vez de /usr/bin/gedit
e não em program
vez de ./program
ou /home/username/program
, consulte a pergunta relacionada: