Siempre hago una copia de seguridad de los archivos de configuración o cualquier archivo antiguo en algún lugar de mi disco duro antes de editarlos o modificarlos, para poder restaurarlos desde la copia de seguridad si accidentalmente hice algo mal. Pero el problema es que olvidé limpiar esos archivos y mi disco duro se llena con muchos archivos duplicados después de un cierto período de tiempo. Me siento demasiado perezoso para limpiar los archivos antiguos o temo que pueda eliminar archivos importantes. Si es como yo y está abrumado con múltiples copias de los mismos archivos en diferentes directorios de respaldo, puede encontrar y eliminar archivos duplicados utilizando las herramientas que se proporcionan a continuación en sistemas operativos similares a Unix.
Una advertencia:
Tenga cuidado al eliminar archivos duplicados. Si no tiene cuidado, lo llevará a pérdida accidental de datos . Le aconsejo que preste especial atención al usar estas herramientas.
Encuentre y elimine archivos duplicados en Linux
A los efectos de esta guía, voy a hablar sobre tres utilidades, a saber,
- Rdencontrar,
- Fengaños,
- FSlint.
Estas tres utilidades son gratuitas, de código abierto y funcionan en la mayoría de los sistemas operativos similares a Unix.
1. Rdencontrar
Rdencontrar , significa r edundante d ata buscar , es una utilidad gratuita y de código abierto para encontrar archivos duplicados en y/o dentro de directorios y subdirectorios. Compara archivos en función de su contenido, no de sus nombres de archivo. Rdfind usa clasificación algoritmo para clasificar archivos originales y duplicados. Si tiene dos o más archivos iguales, Rdfind es lo suficientemente inteligente como para encontrar cuál es el archivo original y considerar el resto de los archivos como duplicados. Una vez que haya encontrado los duplicados, se los informará. Puede decidir eliminarlos o reemplazarlos con enlaces físicos. o enlaces simbólicos (suaves) .
Instalando Rdfind
Rdfind está disponible en AUR . Por lo tanto, puede instalarlo en sistemas basados en Arch usando cualquier programa auxiliar de AUR como Yay como se muestra a continuación.
$ yay -S rdfind
En Debian, Ubuntu, Linux Mint:
$ sudo apt-get install rdfind
En Fedora:
$ sudo dnf install rdfind
En RHEL, CentOS:
$ sudo yum install epel-release
$ sudo yum install rdfind
Uso
Una vez instalado, simplemente ejecute el comando Rdfind junto con la ruta del directorio para buscar los archivos duplicados.
$ rdfind ~/Downloads
Escanear un directorio con Rdfind
Como puede ver en la captura de pantalla anterior, el comando Rdfind escaneará el directorio ~/Downloads y guardará los resultados en un archivo llamado results.txt en el directorio de trabajo actual. Puede ver el nombre de los posibles archivos duplicados en el archivo results.txt.
$ cat results.txt # Automatically generated # duptype id depth size device inode priority name DUPTYPE_FIRST_OCCURRENCE 1469 8 9 2050 15864884 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test5.regex DUPTYPE_WITHIN_SAME_TREE -1469 8 9 2050 15864886 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test6.regex [...] DUPTYPE_FIRST_OCCURRENCE 13 0 403635 2050 15740257 1 /home/sk/Downloads/Hyperledger(1).pdf DUPTYPE_WITHIN_SAME_TREE -13 0 403635 2050 15741071 1 /home/sk/Downloads/Hyperledger.pdf # end of file
Al revisar el archivo results.txt, puede encontrar fácilmente los duplicados. Puede eliminar los duplicados manualmente si lo desea.
Además, puedes -dryrun opción para encontrar todos los duplicados en un directorio determinado sin cambiar nada y mostrar el resumen en su Terminal:
$ rdfind -dryrun true ~/Downloads
Una vez que haya encontrado los duplicados, puede reemplazarlos con enlaces físicos o simbólicos.
Para reemplazar todos los duplicados con enlaces duros, ejecute:
$ rdfind -makehardlinks true ~/Downloads
Para reemplazar todos los duplicados con enlaces simbólicos/soft links, ejecute:
$ rdfind -makesymlinks true ~/Downloads
Es posible que tenga algunos archivos vacíos en un directorio y quiera ignorarlos. Si es así, utilice -ignoreempty opción como la siguiente.
$ rdfind -ignoreempty true ~/Downloads
Si ya no desea los archivos antiguos, simplemente elimine los archivos duplicados en lugar de reemplazarlos con enlaces fijos o blandos.
Para eliminar todos los duplicados, simplemente ejecute:
$ rdfind -deleteduplicates true ~/Downloads
Si no desea ignorar los archivos vacíos y eliminarlos junto con todos los duplicados, ejecute:
$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads
Para obtener más detalles, consulte la sección de ayuda:
$ rdfind --help
Y, las páginas del manual:
$ man rdfind
Lectura sugerida:
- Elimine archivos duplicados de su Android con el Reparador de archivos duplicados
2. Duplicados
Fdupes es otra utilidad de línea de comandos para identificar y eliminar los archivos duplicados dentro de los directorios y subdirectorios especificados. Es una utilidad gratuita de código abierto escrita en C lenguaje de programación. Fdupes identifica los duplicados comparando tamaños de archivo, firmas MD5 parciales, firmas MD5 completas y, finalmente, realizando una comparación byte por byte para su verificación.
Similar a la utilidad Rdfind, Fdupes viene con bastantes opciones para realizar operaciones, tales como:
- Busca de forma recursiva archivos duplicados en directorios y subdirectorios
- Excluir archivos vacíos y archivos ocultos de la consideración
- Mostrar el tamaño de los duplicados
- Elimine los duplicados inmediatamente después de encontrarlos
- Excluir archivos con diferente propietario/grupo o bits de permiso como duplicados
- Y mucho más.
Instalación de Fdupes
Fdupes está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.
En Arch Linux y sus variantes como Antergos, Manjaro Linux, instálelo usando Pacman como se muestra a continuación.
$ sudo pacman -S fdupes
En Debian, Ubuntu, Linux Mint:
$ sudo apt-get install fdupes
En Fedora:
$ sudo dnf install fdupes
En RHEL, CentOS:
$ sudo yum install epel-release
$ sudo yum install fdupes
Uso
El uso de Fdupes es bastante simple. Simplemente ejecute el siguiente comando para encontrar los archivos duplicados en un directorio, por ejemplo ~/Downloads .
$ fdupes ~/Downloads
Salida de muestra de mi sistema:
/home/sk/Downloads/Hyperledger.pdf /home/sk/Downloads/Hyperledger(1).pdf
Como puede ver, tengo un archivo duplicado en /home/sk/Downloads/ directorio. Muestra los duplicados del directorio principal solamente. ¿Cómo ver los duplicados de los subdirectorios? Solo usa -r opción como la siguiente.
$ fdupes -r ~/Downloads
Ahora verá los duplicados de /home/sk/Downloads/ directorio y sus subdirectorios también.
Fdupes también puede encontrar duplicados de varios directorios a la vez.
$ fdupes ~/Downloads ~/Documents/ostechnix
Incluso puede buscar en varios directorios, uno recursivamente como se muestra a continuación:
$ fdupes ~/Downloads -r ~/Documents/ostechnix
Los comandos anteriores buscan duplicados en el directorio "~/Descargas" y en el directorio "~/Documentos/ostechnix" y sus subdirectorios.
A veces, es posible que desee saber el tamaño de los duplicados en un directorio. Si es así, utilice -S opción como la siguiente.
$ fdupes -S ~/Downloads 403635 bytes each: /home/sk/Downloads/Hyperledger.pdf /home/sk/Downloads/Hyperledger(1).pdf
Del mismo modo, para ver el tamaño de los duplicados en los directorios principales y secundarios, use -Sr opción.
Podemos excluir archivos vacíos y ocultos de la consideración usando -n y -A respectivamente.
$ fdupes -n ~/Downloads
$ fdupes -A ~/Downloads
El primer comando excluirá los archivos de longitud cero y el segundo excluirá los archivos ocultos mientras busca duplicados en el directorio especificado.
Para resumir la información de los archivos duplicados, use -m opción.
$ fdupes -m ~/Downloads 1 duplicate files (in 1 sets), occupying 403.6 kilobytes
Para eliminar todos los duplicados, use -d opción.
$ fdupes -d ~/Downloads
Salida de muestra:
[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf [2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf Set 1 of 1, preserve files [1 - 2, all]:
Este comando le pedirá que conserve los archivos y elimine todos los demás duplicados. Simplemente ingrese cualquier número para conservar el archivo correspondiente y eliminar los archivos restantes. Preste más atención al usar esta opción. Puede eliminar los archivos originales si no tiene cuidado.
Si desea conservar el primer archivo de cada conjunto de duplicados y eliminar los demás sin preguntar cada vez, use -dN opción (no recomendada).
$ fdupes -dN ~/Downloads
Para eliminar duplicados a medida que se encuentran, use -I bandera.
$ fdupes -I ~/Downloads
Para obtener más detalles sobre Fdupes, consulte la sección de ayuda y las páginas del manual.
$ fdupes --help
$ man fdupes
Lea también:
- Reparador de fotos duplicadas:organice bien su biblioteca de fotos
3. FSlint
FSlint es otra utilidad de búsqueda de archivos duplicados que uso de vez en cuando para deshacerme de los archivos duplicados innecesarios y liberar espacio en el disco en mi sistema Linux. A diferencia de las otras dos utilidades, FSlint tiene modos GUI y CLI. Por lo tanto, es una herramienta más fácil de usar para los novatos. FSlint no solo encuentra los duplicados, sino también los enlaces simbólicos incorrectos, los nombres incorrectos, los archivos temporales, los IDS incorrectos, los directorios vacíos y los archivos binarios no eliminados, etc.
Instalación de FSlint
FSlint está disponible en AUR , para que pueda instalarlo usando cualquier asistente de AUR.
$ yay -S fslint
En Debian, Ubuntu, Linux Mint:
$ sudo apt-get install fslint
En Fedora:
$ sudo dnf install fslint
En RHEL, CentOS:
$ sudo yum install epel-release
$ sudo yum install fslint
Una vez que esté instalado, ejecútelo desde el menú o el iniciador de aplicaciones.
Así es como se ve la GUI de FSlint.
Interfaz FSlint
Como puede ver, la interfaz de FSlint es fácil de usar y se explica por sí misma. En la ruta de búsqueda pestaña, agregue la ruta del directorio que desea escanear y haga clic en Buscar botón en la esquina inferior izquierda para encontrar los duplicados. Marque la opción recursiva para buscar recursivamente duplicados en directorios y subdirectorios. El FSlint escaneará rápidamente el directorio dado y los listará.
GUI de fslint
De la lista, elija los duplicados que desea limpiar y seleccione cualquiera de ellos con acciones como Guardar, Eliminar, Fusionar y Enlace simbólico.
En los parámetros de búsqueda avanzada pestaña, puede especificar las rutas para excluir mientras busca duplicados.
fslint búsqueda avanzada
Opciones de línea de comandos de FSlint
FSlint proporciona una colección de las siguientes utilidades CLI para encontrar duplicados en su sistema de archivos:
- buscar -- encontrar archivos DUPLICADOS
- buscar -- encuentra Name Lint (problemas con los nombres de archivo)
- findu8 -- encontrar nombres de archivo con codificación utf8 no válida
- buscarbl -- encontrar enlaces malos (varios problemas con enlaces simbólicos)
- busca -- encontrar el mismo nombre (problemas con nombres que chocan)
- encontrado -- encontrar directorios vacíos
- encontrar -- encontrar archivos con ID de usuario muertos
- busca -- encontrar ejecutables no eliminados
- busca -- encontrar espacios en blanco redundantes en archivos
- buscartf -- buscar archivos temporales
- findul -- encontrar bibliotecas posiblemente no utilizadas
- zipdir -- Recuperar el espacio desperdiciado en las entradas del directorio ext2
Todas estas utilidades están disponibles en /usr/share/fslint/fslint/fslint ubicación.
Por ejemplo, para encontrar duplicados en un directorio determinado, haz lo siguiente:
$ /usr/share/fslint/fslint/findup ~/Downloads/
De manera similar, para encontrar directorios vacíos, el comando sería:
$ /usr/share/fslint/fslint/finded ~/Downloads/
Para obtener más detalles sobre cada utilidad, por ejemplo findup , ejecuta:
$ /usr/share/fslint/fslint/findup --help
Para obtener más detalles sobre FSlint, consulte la sección de ayuda y las páginas man.
$ /usr/share/fslint/fslint/fslint --help
$ man fslint
Conclusión
Ahora conoce tres herramientas para encontrar y eliminar archivos duplicados no deseados en Linux. Entre estas tres herramientas, a menudo uso Rdfind. No significa que las otras dos utilidades no sean eficientes, pero hasta ahora estoy contento con Rdfind. Bueno, es tu turno. ¿Cuál es tu herramienta favorita y por qué? Háganos saber en la sección de comentarios a continuación.