GNU/Linux >> Tutoriales Linux >  >> Linux

fdupes:una herramienta de línea de comandos para buscar y eliminar archivos duplicados en Linux

Es un requisito común encontrar y reemplazar archivos duplicados para la mayoría de los usuarios de computadoras. Encontrar y eliminar archivos duplicados es un trabajo tedioso que exige tiempo y paciencia. Encontrar archivos duplicados puede ser muy fácil si su máquina funciona con GNU/Linux, gracias a 'fdupes ‘ utilidad.

¿Qué es fdupes?

Fdupes es una utilidad de Linux escrita por Adrian Lopez en C Lenguaje de programación publicado bajo licencia MIT. La aplicación puede encontrar archivos duplicados en el conjunto dado de directorios y subdirectorios. Fdupes reconoce los duplicados comparando la firma MD5 de los archivos seguida de una comparación de byte a byte. Se pueden pasar muchas opciones con Fdupes para enumerar, eliminar y reemplazar los archivos con enlaces duros a duplicados.

La comparación comienza en el orden:

comparación de tallas> Comparación parcial de firmas MD5> Comparación completa de firmas MD5> Comparación byte a byte .

Instalar fdupes en Linux

La instalación de la última versión de fdupes (fdupes versión 1.51) es tan fácil como ejecutar el siguiente comando en Debian sistemas basados ​​como Ubuntu y Linux Mint .

$ sudo apt-get install fdupes

En CentOS /RHEL y Fedora basados ​​en sistemas, debe activar el repositorio epel para instalar el paquete fdupes.

# yum install fdupes
# dnf install fdupes    [On Fedora 22 onwards]

Nota :El administrador de paquetes predeterminado yum se reemplaza por dnf de Fedora 22 en adelante…

¿Cómo usar el comando fdupes?

1. Para fines de demostración, vamos a crear algunos archivos duplicados en un directorio (digamos tecmint ) simplemente como:

$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done

Después de ejecutar el comando anterior, verifiquemos que los archivos duplicados se creen o no usen el comando ls.

$ ls -l

total 60
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint10.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint11.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint12.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint13.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint14.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint15.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint1.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint2.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint3.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint4.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint5.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint6.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint7.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint8.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

El script anterior crea 15 a saber, tecmint1.txt, tecmint2.txt…tecmint15.txt y todos los archivos contienen los mismos datos, es decir,

"I Love Tecmint. Tecmint is a very nice community of Linux Users."

2. Ahora busque archivos duplicados dentro de la carpeta tecmint .

$ fdupes /home/$USER/Desktop/tecmint 

/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

3. Busque duplicados de forma recursiva en cada directorio, incluidos sus subdirectorios, utilizando -r opción.

Busca en todos los archivos y carpetas de forma recursiva, dependiendo de la cantidad de archivos y carpetas, llevará algún tiempo escanear duplicados. Mientras tanto, se le presentará el progreso total en la terminal, algo como esto.

$ fdupes -r /home

Progress [37780/54747] 69%

4. Vea el tamaño de los duplicados encontrados dentro de una carpeta usando -S opción.

$ fdupes -S /home/$USER/Desktop/tecmint

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

5. Puede ver el tamaño de los archivos duplicados para cada directorio y subdirectorios que se encuentran dentro usando -S y -r opciones al mismo tiempo, como:

$ fdupes -Sr /home/avi/Desktop/

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

107 bytes each:
/home/tecmint/Desktop/resume_files/r-csc.html
/home/tecmint/Desktop/resume_files/fc.html

6. Aparte de buscar en una carpeta o en todas las carpetas de forma recursiva, puede optar por elegir entre dos carpetas o tres carpetas, según sea necesario. Sin mencionar que puede usar la opción -S y/o -r si es necesario.

$ fdupes /home/avi/Desktop/ /home/avi/Templates/

7. Para eliminar los archivos duplicados conservando una copia, puede utilizar la opción ‘-d’ . Se debe tener mucho cuidado al usar esta opción, de lo contrario, podría terminar perdiendo los archivos/datos necesarios y tenga en cuenta que el proceso es irrecuperable.

$ fdupes -d /home/$USER/Desktop/tecmint

[1] /home/tecmint/Desktop/tecmint/tecmint13.txt
[2] /home/tecmint/Desktop/tecmint/tecmint8.txt
[3] /home/tecmint/Desktop/tecmint/tecmint11.txt
[4] /home/tecmint/Desktop/tecmint/tecmint3.txt
[5] /home/tecmint/Desktop/tecmint/tecmint4.txt
[6] /home/tecmint/Desktop/tecmint/tecmint6.txt
[7] /home/tecmint/Desktop/tecmint/tecmint7.txt
[8] /home/tecmint/Desktop/tecmint/tecmint9.txt
[9] /home/tecmint/Desktop/tecmint/tecmint10.txt
[10] /home/tecmint/Desktop/tecmint/tecmint2.txt
[11] /home/tecmint/Desktop/tecmint/tecmint5.txt
[12] /home/tecmint/Desktop/tecmint/tecmint14.txt
[13] /home/tecmint/Desktop/tecmint/tecmint1.txt
[14] /home/tecmint/Desktop/tecmint/tecmint15.txt
[15] /home/tecmint/Desktop/tecmint/tecmint12.txt

Set 1 of 1, preserve files [1 - 15, all]: 

Puede notar que se enumeran todos los duplicados y se le solicita que los elimine, ya sea uno por uno o cierto rango o todos de una vez. Puede seleccionar un rango similar al siguiente para eliminar archivos de un rango específico.

Set 1 of 1, preserve files [1 - 15, all]: 2-15

   [-] /home/tecmint/Desktop/tecmint/tecmint13.txt
   [+] /home/tecmint/Desktop/tecmint/tecmint8.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint11.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint3.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint4.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint6.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint7.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint9.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint10.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint2.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint5.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint14.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint1.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint15.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint12.txt

8. Desde el punto de vista de la seguridad, es posible que desee imprimir la salida de 'fdupes' para archivar y luego verifique el archivo de texto para decidir qué archivo eliminar. Esto disminuye las posibilidades de que su archivo se elimine accidentalmente. Puedes hacer:

$ fdupes -Sr /home > /home/fdupes.txt

Nota :Puede reemplazar ‘/home’ con la carpeta deseada. Utilice también la opción ‘-r’ y '-S' si desea buscar recursivamente y Tamaño de impresión, respectivamente.

9. Puede omitir el primer archivo de cada conjunto de coincidencias mediante la opción '-f' .

Primero Listar archivos del directorio.

$ ls -l /home/$USER/Desktop/tecmint

total 20
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (3rd copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (4th copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (another copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

y luego omita el primer archivo de cada conjunto de coincidencias.

$ fdupes -f /home/$USER/Desktop/tecmint

/home/tecmint/Desktop/tecmint9 (copy).txt
/home/tecmint/Desktop/tecmint9 (3rd copy).txt
/home/tecmint/Desktop/tecmint9 (another copy).txt
/home/tecmint/Desktop/tecmint9 (4th copy).txt

10. Compruebe la versión instalada de fdupes.

$ fdupes --version

fdupes 1.51

11. Si necesita ayuda con fdupes, puede usar el interruptor '-h' .

$ fdupes -h

Usage: fdupes [options] DIRECTORY...

 -r --recurse     	for every directory given follow subdirectories
                  	encountered within
 -R --recurse:    	for each directory given after this option follow
                  	subdirectories encountered within (note the ':' at
                  	the end of the option, manpage for more details)
 -s --symlinks    	follow symlinks
 -H --hardlinks   	normally, when two or more files point to the same
                  	disk area they are treated as non-duplicates; this
                  	option will change this behavior
 -n --noempty     	exclude zero-length files from consideration
 -A --nohidden    	exclude hidden files from consideration
 -f --omitfirst   	omit the first file in each set of matches
 -1 --sameline    	list each set of matches on a single line
 -S --size        	show size of duplicate files
 -m --summarize   	summarize dupe information
 -q --quiet       	hide progress indicator
 -d --delete      	prompt user for files to preserve and delete all
                  	others; important: under particular circumstances,
                  	data may be lost when using this option together
                  	with -s or --symlinks, or when specifying a
                  	particular directory more than once; refer to the
                  	fdupes documentation for additional information
 -N --noprompt    	together with --delete, preserve the first file in
                  	each set of duplicates and delete the rest without
                  	prompting the user
 -v --version     	display fdupes version
 -h --help        	display this help message

Eso es para todos ahora. Déjame saber cómo estabas encontrando y eliminando archivos duplicados hasta ahora en Linux. y también cuéntame tu opinión sobre esta utilidad. Ponga sus valiosos comentarios en la sección de comentarios a continuación y no se olvide de darnos Me gusta/compartir y ayudarnos a difundir.

Estoy trabajando en otra utilidad llamada fslint para eliminar archivos duplicados, pronto publicaré y les encantará leer.


Linux
  1. Cómo encontrar archivos duplicados en Linux

  2. ¿Cómo encontrar archivos duplicados en Linux? ¡La ayuda está aquí con el comando fdupes!

  3. Cómo encontrar archivos con el comando fd en Linux

  4. 11 ejemplos de comandos diff3 de Linux (comparar 3 archivos línea por línea)

  5. Cómo encontrar y eliminar directorios y archivos vacíos en Linux

Cómo eliminar archivos y directorios usando la línea de comandos de Linux

Cómo encontrar y eliminar archivos duplicados en Linux

Las 3 mejores herramientas para buscar y eliminar archivos duplicados en Linux

Cómo encontrar y eliminar archivos duplicados en Ubuntu usando Fdupes

Cómo encontrar archivos duplicados en Linux y eliminarlos

Encontrar los archivos y carpetas más grandes en la línea de comandos de Linux