Ok, isso me deixa batendo na cabeça. No OS X, para criar um link físico, em uma janela do 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 instrução, com certeza, no Finder b.txt
aparece ao lado a.txt
. No entanto, mesmo após a edição a.txt
usando o TextEdit, b.txt
ainda há os dados originais! Em outras palavras, parece que ele executou uma cópia, não um link, físico ou não.
Não faz nenhum sentido para mim! Então, alguém pode me dizer o que estou fazendo de errado aqui?
osx-snow-leopard
hardlink
Mark A. Donohoe
fonte
fonte
Respostas:
A razão para esse comportamento é bastante direta e está relacionada à maneira como os arquivos são salvos na maioria dos aplicativos Mac OS X: Atomically.
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.
fonte
vi
- não é suficiente definir permissões de gravação no arquivo, você também precisa da pasta!Se aparecer, consulte esta entrada do superusuário , que esse é um recurso do TextEdit. Portanto, o método normal para criar links físicos está correto, mas o TextEdit se comporta de maneira a quebrar isso. (O link diz que ele cria um novo arquivo e o move sobre o arquivo antigo após a edição.)
fonte
Observe que o emacs também exibe esse comportamento (surpreendente!) Por padrão (em todos os unixes), embora a causa seja um pouco diferente (é a coisa "segura" a fazer em situações de espaço em disco muito baixo). No entanto, ele pode ser configurado de várias maneiras.
Consulte a documentação para
make-backup-files
(usoC-h v make-backup-files
) e parabackup-by-coping
backup-by-coping-when-linked
backup-by-coping-when-mismatch
backup-by-coping-when-privileged-mismatch
fonte