Estou tentando usar o fslint para encontrar duplicatas, mas leva uma eternidade para fazer o hash de arquivos inteiros de vários gigabytes. De acordo com este site , posso comparar pelas seguintes características:
resumo do recurso
compare by file size
compare by hardlinks
compare by md5 (first 4k of a file)
compare by md5 (entire file)
compare by sha1 (entire file)
mas não vejo essas opções na GUI ou nas páginas de manual. Há algo que estou perdendo aqui?
Edit: estou usando jdupes com a linha de comando:
jdupes -r -T -T --exclude=size-:300m --nohidden
Para obter esse trabalho, tive que clonar o repositório git e compilar a partir do código-fonte. (A versão empacotada está lamentavelmente desatualizada.)
Eu também tive que editar o código-fonte para alterar a cada:
#define PARTIAL_HASH_SIZE 4096
para
#define PARTIAL_HASH_SIZE 1048576
e então ele realmente correspondeu aos meus arquivos corretamente. Não sei por que eles codificaram dessa maneira, mas apenas corresponder aos primeiros 4096 bytes não é suficiente e produz duplicatas falsas. (Talvez uma opção de linha de comando seja útil aqui)
Você não perdeu nada em relação ao FSlint; ele realmente suporta todas essas comparações, mas não permite que elas sejam configuradas – ele desduplica usando todas essas informações, o tempo todo.
findup
é em si um script de shell e cada comparação é separada. Os blocos opcionais são indicados, para que você possa comentá-los para pular os testes que não deseja.Em relação ao jdupes, vejo que você registrou um problema sobre o tamanho do hash; é mais produtivo continuar a discussão lá do que abordá-la aqui.
Você pode
find
duplicar tamanhos de arquivo como este:e então faça o que quiser com isso... por exemplo, grep.
e encontra coisas com o mesmo tamanho (independentemente do conteúdo)
Sinta-se à vontade para adicionar condições, como hashing start, end, middle of file. Não é muito difícil roteirizar você mesmo.
No entanto, pode nem não ser uma duplicata até que você leia tudo. Não existe uma heurística que pegue tudo, pois uma diferença pode aparecer em qualquer lugar. Então, se você pegar um atalho, você sempre aceita duplicatas falsas como uma coisa natural.
A única maneira mais rápida de verificar se há duplicatas é torná-lo um hardlink. Se for o mesmo arquivo, você não precisa mais verificar o tamanho ou o conteúdo.