web-dev-qa-db-fra.com

Comment supprimer les fichiers en double avec fdupes?

Lorsque j'exécute fdupes, il trouve plus de 30 000 fichiers en double. Je dois conserver un fichier et supprimer tous les autres doublons (car certains d'entre eux sont des fichiers système). Donnez-moi s'il vous plaît une commande ou un script pour le faire sans appuyer sur "1 ou 2 ou tous" pour chaque groupe de fichiers en double.

13
user84055

Vous pouvez le faire si vous souhaitez exécuter cette opération en mode silencieux (je viens de l'utiliser pour supprimer 150 Go de dupes s'exécutant sur le stockage de bloc rackspace .. £ kerching !!)

fdupes -rdN dir/

r - recursive
d - preserver first file, delete other dupes
N - run silently (no Prompt)
20
user288359

fdupesa une CLI riche:

fdupes -r ./stuff > dupes.txt

Ensuite, supprimer les doublons était aussi simple que de vérifier dupes.txt et de supprimer les répertoires incriminés. fdupespeut également vous inviter à supprimer les doublons au fur et à mesure.

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

La sortie de la commande va dans duplicate.txt.

fdupescomparera la taille et le hachage MD5 des fichiers pour trouver les doublons.

Consultez la page de manuel fdupesNAME_ pour obtenir des informations détaillées sur l’utilisation.

9
Amol Sale

Je voudrais utiliser cette manière plus sûre:

Créez un script et déplacez les fichiers dupliqués dans un nouveau dossier. Si vous passez dans un dossier situé en dehors du dossier d'origine, fdupes ne signalera pas les fichiers dupliqués lors d'une seconde analyse et il sera plus sûr de les supprimer.

#!/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
1
LinuxHelper

J'ai utilisé fslint et DupeGur pendant un certain temps.

  • FSlint prend en charge la sélection par caractère générique et d'autres méthodes de nettoyage.
  • DupeGuru supporte regex

Les deux peuvent gérer plus de 10000 fichiers/dossiers

1
seb