Um método de arquivo efetivo para muitos arquivos duplicados

2

O formato WIM detecta automaticamente arquivos duplicados e arquivos sem duplicação.

Existe alguma alternativa no UNIX, Linux ou Mac?

    
por Licht Takeuchi 12.08.2017 / 09:23

1 resposta

2

Se o arquivo for pequeno o suficiente, a maioria dos formatos de arquivo fará um trabalho decente, com exceção do zip. O Zip compacta cada arquivo de forma independente, mas outros formatos populares (tar.anything, 7z, rar) compactam o arquivo como um todo. Se arquivos idênticos estiverem próximos o suficiente no arquivo, a segunda ocorrência pode ser compactada em alguns bytes. O quão perto está "perto o suficiente" depende do formato do arquivo.

Um método que funciona para qualquer arquivador que entende links físicos, como o tar, é substituir primeiro os arquivos idênticos por links físicos. Isso só é aplicável se você não quiser que os arquivos com conteúdo duplicado tenham metadados diferentes (permissões, registros de data e hora, etc.). Você usa fdupes para procurar duplicatas e, em seguida, um pouco de pós-processamento para substituir duplicatas por links físicos, supondo que os nomes dos arquivos não sejam não contém novas linhas:

fdupes -q -r . | awk '
    $0 == "" {first = ""; next}
    {
        gsub(/7/, "7\77", $0);
        if (first == "") first = $0;
        else system("ln -f 7" first "7 7" $0 "7");
    }'
    
por 13.08.2017 / 02:33

Tags