Como usar fdupes?

11

Quando executo fdupes , ele encontra mais de 30.000 arquivos duplicados. Eu preciso manter um arquivo e excluir todos os outros duplicados (porque alguns deles são systemfiles). Por favor, me dê um comando ou script para fazer isso sem pressionar "1 ou 2 ou todos" para cada grupo de arquivos duplicados.

    
por user84055 18.08.2012 / 11:28

4 respostas

17

Você pode fazer isso se quiser rodá-lo silenciosamente (eu acabei de usá-lo para limpar 150 GB de dupes sendo executados em armazenamento em bloco de espaço rackspace.)

fdupes -rdN dir/

r - recursive
d - preserver first file, delete other dupes
N - run silently (no prompt)
    
por user288359 04.06.2014 / 15:17
7

fdupes tem uma CLI avançada:

fdupes -r ./stuff > dupes.txt

Em seguida, excluir as duplicatas foi tão fácil quanto verificar dupes.txt e excluir os diretórios incorretos. fdupes também pode solicitar que você exclua as duplicatas à medida que avança.

fdupes -r /home/user > /home/user/duplicate.txt

A saída do comando vai em duplicate.txt .

fdupes irá comparar o tamanho e o hash MD5 dos arquivos para encontrar duplicatas.

Verifique a fdupes manpage para obter informações detalhadas sobre o uso.

    
por Amol Sale 18.08.2012 / 11:43
1

Eu usei fslint e DupeGuru por um bom tempo.

  • O FSlint suporta a seleção por curinga e outros métodos de limpeza
  • DupeGuru suporta regex

Ambos podem manipular & gt; 10000 arquivos / pastas

    
por seb 01.07.2014 / 13:10
1

Eu usaria essa maneira mais segura:

Crie um script e mova os arquivos duplicados para uma nova pasta. Se você for para uma pasta fora da pasta original, os fdupes não reportarão os arquivos duplicados em uma segunda verificação, e será mais seguro excluí-los.

#!/bin/bash

# Save default separator definitions
oIFS=$IFS
# define new line as a separator, filenames can have spaces
IFS=$'\n';

# For each file (f) listed as duplicated by fdupes, recursively
  for f in 'fdupes -r -f .'
  do
    # Log the files I'm moving
    echo "Moving $f to folder Duplicates" >> ~/log.txt
    # Move the duplicated file, keeping the original in the original folder
    mv $f Duplicates/
  done

# restore default separator definitions
IFS=$oIFS
    
por LinuxHelper 19.05.2017 / 13:57