Um link físico pode quebrar a estrutura do sistema de arquivos?

2

Eu quero um exemplo muito simples de como um hard link pode quebrar a estrutura do sistema de arquivos.

Eu vi em algum lugar que as pessoas dizem que é por causa de loops, no entanto, eu posso fazer um loop com um link suave e então eu ainda quero saber o que faz o hard link quebrar o sistema de arquivos?

    
por alkabary 22.01.2015 / 00:57

1 resposta

3

São links rígidos para diretórios que podem quebrar a estrutura do sistema de arquivos. Links rígidos para outros tipos de arquivos não são um problema. Por exemplo:

mkdir foo
ln foo foo/self
rmdir foo

rmdir foo na verdade não remove o diretório, pois ele tem um link restante - a entrada self dentro de foo . foo foi desanexado do sistema de arquivos; não pode mais ser alcançado, mas ainda existe. Proibir links rígidos para diretórios impede esse problema. Existem sistemas de arquivos coletados por coleta de lixo onde uma árvore de diretórios desanexada é automaticamente recuperada, mas eles nunca foram realmente usados (é um esforço significativo para quase nenhum benefício).

Outro problema é com ferramentas que atravessam uma árvore de diretórios. Se hard links para diretórios são permitidos, então essas ferramentas teriam que se lembrar de todos os diretórios vistos anteriormente e ignorá-los, ou então eles iriam loopar para sempre ao encontrar um diretório que é um subdiretório dele mesmo (ou de um filho dele mesmo, etc. ).

Os loops com links simbólicos não são um problema. Se o destino do link simbólico for removido, a existência do symlink não importa. Em travessias recursivas, as ligações simbólicas não são seguidas (a menos que sejam explicitamente solicitadas).

    
por 22.01.2015 / 01:04