Arquivos Hardlink não são os mesmos

1

Eu criei um link físico de um arquivo da seguinte forma:

ln /path/to/source/file1 /path/to/target/file2

Usando md5sum, os dois arquivos são idênticos. Depois de um tempo, o arquivo de origem foi modificado por outro programa. O arquivo de destino não é "atualizado". Os md5sums agora são diferentes. Os arquivos estão na mesma partição, claro, senão não consegui criar um link.

O que estou tentando fazer é obter uma cópia do arquivo de origem na pasta de destino (que tem versão), para que eu tenha acesso ao arquivo de origem em outro lugar.

Eu tentei mover o arquivo de origem para a pasta de destino com um nome diferente e criar um link simbólico para ele na origem, mas o programa que esperava o arquivo (de alguma forma) criou um arquivo com o nome desejado na pasta de destino .

Idéias?

    
por SabreWolfy 17.01.2011 / 11:22

2 respostas

3

O que eu acho é que o sistema de controle de versão (qual?) move / exclui o arquivo com link físico e cria uma nova cópia que não está mais com link físico para o arquivo original.

O que a contagem de links (a primeira coluna numérica na saída de ls -l ) informa sobre o arquivo original? Se for 1, o link se perdeu. Se é 2, você tem que encontrar a segunda cópia real, talvez com o comando find. Para fazer isso, digite o seguinte comando:

find /commonparent_dir -samefile /path/to/original_file 

Isso procura arquivos com o mesmo inode que o arquivo /path/to/original_file iniciando no diretório pai comum (ou seja, o ponto de montagem).

    
por 17.01.2011 / 11:36
0

Eu posso replicar o cenário em um caso de teste, então presumo que é isso que está acontecendo. Se o arquivo de origem for excluído, o link físico será perdido. Mesmo se um novo arquivo for criado com o mesmo nome, o link físico do curso não será reintegrado. É isso que deve estar acontecendo, eu acho. O programa que atualiza o arquivo de origem deve estar excluindo o arquivo e recriando-o.

    
por 17.01.2011 / 12:11

Tags