Como você cria um Hard Link de trabalho no OSX?

8

Ok, isso me faz bater a cabeça. No OS X, para criar um link físico, em uma janela de terminal, você deve apenas digitar isso ...

ln a.txt b.txt

... e isso deve criar um link físico de a.txt para b.txt . Simples e direto.

Quando executo essa declaração, com certeza, no Finder b.txt aparece ao lado de a.txt . No entanto, mesmo depois de editar a.txt usando o TextEdit, b.txt ainda tem os dados originais! Em outras palavras, parece que ele realizou uma cópia, não um link, ou de outra forma.

Não faz o menor sentido para mim! Então alguém pode me dizer o que estou fazendo errado aqui?

    
por MarqueIV 25.06.2011 / 13:10

3 respostas

15

A razão para esse comportamento é bastante direta e está relacionada à maneira como os arquivos são salvos na maioria dos aplicativos do Mac OS X: Atomicamente.

O que acontece é que uma cópia do arquivo é gravada em uma área temporária e, em seguida, movida para substituir o arquivo original.

Isso, naturalmente, quebra os links físicos.

    
por 25.06.2011 / 13:25
3

Se aparecer, consulte esta entrada do superusuário , que este é um recurso do TextEdit. Então, o método normal para criar hard links está correto, mas o TextEdit se comporta de maneira a quebrar isso. (O link diz que cria um novo arquivo e, em seguida, o move sobre o arquivo antigo após a edição.)

    
por 25.06.2011 / 13:24
1

Note que o emacs também exibe este comportamento (surpreendente!) por padrão (em todos os unixes), mas a causa é um pouco diferente (é a coisa "segura" em situações com muito pouco espaço em disco). No entanto, pode ser configurado de várias maneiras.

Consulte a documentação para make-backup-files (use C-h v make-backup-files ) e para

  • backup-by-coping
  • backup-by-coping-when-linked
  • backup-by-coping-when-mismatch
  • backup-by-coping-when-privileged-mismatch
por 25.06.2011 / 15:03