Por que o diretório / tem .. e o que isso significa?

Por que o diretório / tem .. e o que isso significa?

Enquanto estiver no /diretório e use ls -a o resultado conterá .e..

Posso entender a existência de .que é um ponteiro para o próprio diretório. Qual é o significado de ter o ..no /diretório enquanto não há diretório pai para o /?

Responder1

Muitos softwares trabalham com base em suposições,nãona verdade, garantido a eles pelo POSIX.1, mas tradicionalmente o caso em sistemas UNIX e consagrado em grande parte da literatura UNIX, que (para citar uma dessas peças da literatura UNIX):

Cada diretório contém os nomes de arquivo ponto e ponto-ponto ( .e ..) cujos números de inode são os do diretório e de seu diretório pai, respectivamente.[…]O programa mkfsinicializa um sistema de arquivos para que .o ..diretório raiz tenha o número do inode raiz do sistema de arquivos.

—Maurice J. Bach (1986).O Design do Sistema Operacional UNIX. Salão Prentice. pág. 73

Por exemplo: A antiga getcwd()função da biblioteca (em sistemas que não forneciam suporte especial do kernel para ela) depende disso parasaiba quando pararrastrear a cadeia de ..entradas ao compor o nome do diretório atual. Ele para quando atinge um diretório que é seu próprio pai ou não pode ir até ...

Portanto, a razão pela qual o diretório raiz tem (ou no que diz respeito aos programas em modo de aplicativos, pelo menosparecepara ser visto através da API do sistema) uma ..entrada é que muitas coisas são baseadas na suposição de quetododiretório possui .., e que ..na raiz um loop pode ser usado para detectar que alguém está na raiz.

Na verdade, POSIX.1 não garante que o diretório raiz tenha um .., apenas especificando queos programas têm que levar em conta a possibilidade de um loop seexiste um ..no diretório raiz. Isso permite que sistemas não-UNIX também sejam compatíveis com POSIX. Existem sistemas de arquivos onde oausênciaof ..indica que um diretório é um diretório raiz. E existem, como o próprio Bach discute, sistemas onde existe um diretórioacimaa raiz, que o POSIX.1 permite em sua discussão de nomes de caminhos absolutos que começam comdoisbarras (semelhantes à Convenção de Nomenclatura Universal usada em sistemas de rede local da Microsoft).

O Linux (e, portanto, o Ubuntu Linux), entretanto, fornece as garantias mais rigorosas do paradigma UNIX.

Responder2

Muito simplesmente: por meio de diretório de arquivos, ./significaesta pasta, enquanto ../significaonde está o arquivo(por exemplo, quando estou no diretório user/home/me/Desktop, então ../me levará para /user/home/me).

informação relacionada