No Linux, quando você cria uma pasta, ele cria automaticamente dois links físicos para o inode correspondente. Uma que é a pasta que você pediu para criar, a outra é a .
pasta especial desta pasta.
Exemplo:
$ mkdir folder
$ ls -li
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 folder
$ ls -lai folder
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 .
124593716 drwxr-xr-x 3 fantattitude staff 102 18 oct 16:52 ..
Como você pode ver, ambos folder
e .
dentro folder
têm o mesmo número de inode (mostrado com a -i
opção).
Existe alguma maneira de excluir este .
link especial ?
É apenas para experimentação e curiosidade.
Também acho que a resposta pode se aplicar a ..
arquivos especiais também.
Eu tentei olhar para o rm
homem, mas não consegui encontrar nenhuma maneira de fazê-lo. Quando tento remover .
tudo o que recebo é:
rm: "." e ".." não podem ser removidos
Estou realmente curioso sobre o modo como essas coisas funcionam, para não deixar de ser muito detalhado sobre o assunto.
EDIT: Talvez eu não tenha esclarecido minha postagem, mas quero entender o mecanismo subjacente responsável pelos .
arquivos e as razões pelas quais eles não podem ser excluídos.
Eu sei que o padrão POSIX não permite uma pasta com menos de 2 hardlinks, mas realmente não entendo o porquê. Quero saber se seria possível fazê-lo de qualquer maneira.