Pergunta

Eu tenho um par de arquivos idênticos armazenados em mais de um lugar no meu disco rígido. Eu acho que eu posso guardar um monte de espaço em disco, hard-ligando-os para apontar para o mesmo arquivo. Estou um pouco preocupado efeitos colaterais sobre a possibilidade desastrosas.

Eu acho que não afeta as permissões, como aqueles são armazenados nos respectivos diretórios, assim como o nome do arquivo, certo? (Update: Aparentemente, eu imaginei errado, permissões são compartilhados, como Carl demonstra em sua resposta)

A maior preocupação é muda para um arquivo inadvertidamente também mudando os outros arquivos. Read-only arquivos deve ser seguro então. E arquivos que podem ser alterados são também tudo bem, se ao invés de atualizar dentro do arquivo existente, um novo arquivo é gravado. Eu acredito que a maioria das aplicações funciona assim, mas provavelmente não todos.

É mais lá qualquer coisa a considerar?

Estou no OS X / HFS +.

Foi útil?

Solução

Não use links de disco rígido se você quer mudanças para um arquivo não deve ser refletida em outros arquivos. Esse é o ponto de hard links - várias entradas de diretório para o mesmo arquivo (mesmos blocos no disco). Alterar permissões em um dos nomes de um hard link muda-los em ambos:

$ touch file
$ ln file link
$ ls -l
total 0
-rw-r--r--  2 owner group  0 Nov 11 16:44 file
-rw-r--r--  2 owner group  0 Nov 11 16:44 link
$ chmod 444 file
$ ls -l
total 0
-r--r--r--  2 owner group  0 Nov 11 16:44 file
-r--r--r--  2 owner group  0 Nov 11 16:44 link

A partir da página homem ln:

Um hard link para um arquivo é indistinguível da entrada de diretório original; quaisquer alterações em um arquivo são efetivamente independentes do nome usado para referenciar o arquivo.

Outras dicas

Eu escrevi um pequeno script para fazer exatamente isso. Eu só ficaria preocupado sobre permissões se o seu backup foi abrangendo vários usuários ou arquivos de sistema.

Eu tinha um monte de backups antigos em CD e DVD, muitos dos quais tinham uma grande quantidade de dados redundantes sobre eles. Ao invés de vasculhar toda essa informação e excluir as duplicatas, tomei a rota Time Machine e fez ligações fortes entre todos os arquivos correspondentes (verdadeiramente conteúdo correspondente, tomei um checksum SHA1 de todos eles).

Agora, todos os meus volumes de backup olhar apenas como o fariam de outra forma ea maioria dos arquivos redundantes são história. O único contratempo é que um monte de arquivos de mídia armazenar metadados no conteúdo de arquivo para cada versão é ligeiramente diferente. Consulte este artigo para o código python. Sem garantias !!!

Certifique-se de fazer mdimport your_backup_dir/ depois: Spotlight e Localizador de ficar um pouco perturbado quando você faz manipulações de dados em massa. Tenho de-duplicados minha pasta de backup 240 GB desta forma e que demorou cerca de 45 minutos.

Também nota, a maioria dos aplicativos OSX vai quebrar suas ligações duras e salvar em um novo inode, mais UNIX'y aplicativos provavelmente irá preservar os links de disco rígido (exceto emacs, eu ouço).

hardlinks geralmente não são uma boa prática. lisos macios / links simbólicos antigos (ln -s) deve servir tão bem.

Se o seu principal objetivo é "Dedupe backups Time Machine" como você menciona em um dos comentários, então outra opção que evita algumas das suas preocupações seria eliminar os crédulos de Time Machine utilizando o preferências Time Machine . Você pode excluir o diretório ou arquivo nível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top