Todo diretório contém uma entrada .
e ..
.
.
significa o próprio diretório. É chamado de diretório atual .
..
significa o diretório pai , isto é, o diretório que o contém.
Existe um diretório que não está contido por nenhum outro diretório: /
. Portanto /
é especial - assim como todos os outros diretórios, ele contém uma entrada ..
, mas sua entrada ..
é ela própria. Portanto, para /
e apenas para /
, ..
e .
são equivalentes.
Essas entradas de diretório são úteis para várias finalidades. Por exemplo, você pode alterar o diretório para o pai do diretório em que você está atualmente com o comando cd ..
.
Você pode ter visto .
no contexto da execução de programas ou scripts. Em um shell no estilo Unix, quando você executa um comando pelo nome, o shell não tenta executar automaticamente um programa com o nome no diretório atual. (Isso é surpreendente para alguns usuários que vêm do Windows, onde isso acontece.) A principal razão para isso é a segurança - se alguém criar um programa em seu diretório com o mesmo nome de alguma ferramenta de administração do sistema e executar essa ferramenta enquanto em seu diretório, eles poderiam ter apenas enganado você para executar o programa.
Portanto, para executar um programa que não esteja em sua PATH
, você deve chamá-lo por algum nome que tenha um /
nele. Para executar um programa no diretório atual, você pode usar ./program
. (Você não pode usar /program
, porque esse é um caminho absoluto e significa "o arquivo chamado program
no diretório raiz, /
.)