fslint-2

Siempre hago una copia de seguridad de los archivos de configuración o de 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 hago algo mal. Pero el problema es que olvidé limpiar esos archivos y mi disco duro está lleno de 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 eres como yo y eres abrumador, con múltiples copias de los mismos archivos en diferentes directorios de respaldo, puedes encontrar y eliminar archivos duplicados usando las herramientas que se detallan a continuación en los sistemas operativos tipo Unix.

Una precaución:

Ten cuidado al eliminar archivos duplicados. Si no tienes cuidado, te llevará a la pérdida accidental de datos. Te aconsejo que prestes atención adicional al usar estas herramientas.

Para el propósito de esta guía, voy a hablar acerca de tres utilidades a saber,

  • Rdfind,
  • Fdupes,
  • FSlint.

Estas tres utilidades son gratuitas, de código abierto y funcionan en la mayoría de los sistemas operativos tipo Unix.

1. Rdfind

Rdfind, significa descubrimiento de datos redundantes, es una utilidad de código abierto y gratuito para encontrar archivos duplicados a través y/o dentro de directorios y subdirectorios. Compara los archivos en función de su contenido, no en sus nombres de archivo. Rdfind utiliza algoritmo de clasificación para clasificar archivos originales y duplicados. Si tienes dos o más archivos iguales, Rdfind es lo suficientemente inteligente como para encontrar cuál es el archivo original, y considera el resto de los archivos como duplicados. Una vez que encuentre los duplicados, se te informará. Puedes decidir eliminarlos o reemplazarlos con enlaces duros o enlaces simbólicos (suaves).

Instalando Rdfind

Rdfind está disponible en AUR. Por lo tanto, puedes 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 ejecuta el comando Rdfind junto con la ruta del directorio para buscar los archivos duplicados.

$ rdfind ~/Downloads

rdfind-1

Como puedes 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. Puedes 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, puedes encontrar fácilmente los duplicados. Puedes eliminar los duplicados manualmente si lo deseas.

Además, puedes usar la opción -dryrun para encontrar todos los duplicados en un directorio determinado sin cambiar nada y la salida del resumen en tu Terminal:

$ rdfind -dryrun true ~/Downloads

Una vez que encuentre los duplicados, puedes reemplazarlos con enlaces duros o enlaces simbólicos.

Para reemplazar todos los duplicados con enlaces duros, ejecuta:

$ rdfind -makehardlinks true ~/Downloads

Para reemplazar todos los duplicados con enlaces simbólicos/enlaces suaves, ejecuta:

$ rdfind -makesymlinks true ~/Downloads

Puedes tener algunos archivos vacíos en un directorio y deseas ignorarlos. Si es así, usa la opción -ignoreempty como a continuación.

$ rdfind -ignoreempty true ~/Downloads

Si ya no deseas los archivos antiguos, simplemente elimina los archivos duplicados en lugar de reemplazarlos por enlaces duros o suaves.

Para eliminar todos los duplicados, simplemente ejecuta:

$ rdfind -deleteduplicates true ~/Downloads

Si no quieres ignorar los archivos vacíos y eliminarlos junto con todos los duplicados, ejecuta:

$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads

Para más detalles, consulta la sección de ayuda:

$ rdfind --help

Y, las páginas del manual:

$ man rdfind

2. Fdupes

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 lenguaje de programación C. Fdupes identifica los duplicados comparando tamaños de archivo, firmas MD5 parciales, firmas MD5 completas y finalmente realizando una comparación de byte a byte para la verificación.

Similar a la utilidad Rdfind, Fdupes viene con bastantes opciones para realizar operaciones, tales como:

-Buscar recursivamente archivos duplicados en directorios y subdirectorios
-Excluir archivos vacíos y archivos ocultos de consideración
-Mostrar el tamaño de los duplicados
-Eliminar duplicados de inmediato ya que se encontraron
-Excluir archivos con diferentes propietarios/grupos o bits de permisos 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álalo 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 ejecuta el siguiente comando para encontrar los archivos duplicados en un directorio, por ejemplo ~ /Downloads.

$ fdupes ~/Downloads

Muestra de salida de mi sistema:

/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

Como puedes ver, tengo un archivo duplicado en el directorio /home/sk/Downloads/. Muestra los duplicados del directorio principal solamente. ¿Cómo ver los duplicados de los subdirectorios? Simplemente usa la opción -r como a continuación.

$ fdupes -r ~/Downloads

Ahora verás los duplicados del directorio /home/sk/Downloads/ y sus subdirectorios también.

Fdupes también puede encontrar duplicados de múltiples directorios a la vez.

$ fdupes ~/Downloads ~/Documents/ostechnix

Incluso puede buscar en múltiples directorios, uno recursivamente como a continuación:

$ fdupes ~/Downloads -r ~/Documents/ostechnix

Los comandos anteriores buscan duplicados en el directorio “~ /Downloads” y en el directorio “~ /Documents/ejemplo” y sus subdirectorios.

A veces, es posible que desees saber el tamaño de los duplicados en un directorio. Si es así, usa la opción -S como a continuación.

$ fdupes -S ~/Downloads
403635 bytes each: 
/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

De forma similar, para ver el tamaño de los duplicados en directorios padre e hijo, usa la opción -Sr.

Podemos excluir archivos vacíos y ocultos de consideración usando -n y -A respectivamente.

$ fdupes -n ~/Downloads
$ fdupes -A ~/Downloads

El primer comando excluirá los archivos de longitud cero de la consideración y este último excluirá de la consideración los archivos ocultos mientras busca duplicados en el directorio especificado.

Para resumir información de archivos duplicados, usa la opción -m.

$ fdupes -m ~/Downloads
1 duplicate files (in 1 sets), occupying 403.6 kilobytes

Para eliminar todos los duplicados, usa la opción -d.

$ fdupes -d ~/Downloads

Salida de ejemplo:

[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 te solicitará los archivos para preservar y eliminar todos los demás duplicados. Simplemente ingresa cualquier número para conservar el archivo correspondiente y eliminar los archivos restantes. Presta más atención al usar esta opción. Puedes eliminar archivos originales si no tienes cuidado.

Si deseas conservar el primer archivo en cada conjunto de duplicados y eliminar los demás sin preguntar cada vez, usa la opción -dN (no recomendado).

$ fdupes -dN ~/Downloads

Para eliminar duplicados a medida que se encuentran, usa -I.

$ fdupes -I ~/Downloads

Para obtener más detalles sobre Fdupes, consulta la sección de ayuda y las páginas man.

$ fdupes --help
$ man fdupes

3. FSlint

FSlint es otra utilidad de buscador 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 ambos 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, nombres incorrectos, archivos temporales, IDS incorrectos, directorios vacíos y binarios no eliminados, etc.

Instalación de FSlint

FSlint está disponible en AUR, por lo que puedes instalarlo usando cualquier ayuda 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útalo desde el menú o el iniciador de aplicaciones.

Así es como se ve la GUI FSlint.

fslint-1

Como puedes ver, la interfaz de FSlint es fácil de usar y se explica por sí misma. En la pestaña Ruta de búsqueda, agrega la ruta del directorio que deseas escanear y haz clic en el botón Buscar en la esquina inferior izquierda para buscar los duplicados. Verifica la opción recursiva para buscar recursivamente duplicados en directorios y subdirectorios. FSlint escaneará rápidamente el directorio dado y los enumerará.

fslint-2

De la lista, elige los duplicados que deseas limpiar y selecciona cualquiera de ellos con acciones como Guardar, Eliminar, Fusionar y Enlace simbólico.

En la pestaña Parámetros de búsqueda avanzada, puedes especificar las rutas para excluir mientras buscas duplicados.

fslint-3

Opciones de línea de comando de FSlint

FSlint proporciona una colección de las siguientes utilidades de la CLI para encontrar duplicados en su sistema de archivos:

findup – encuentra archivos DUPlicate
findnl – encuentra Name Lint (problemas con los nombres de archivo)
findu8 – encuentra nombres de archivo con codificación utf8 no válida
findbl – encuentra los enlaces malos (varios problemas con los enlaces simbólicos)
findsn – find Same Name (problemas con nombres conflictivos)
Finded – encuentra directorios vacíos
findid – encuentra archivos con ID de usuario muertos
findns – encuentra ejecutables no eliminados
findrs – encuentra espacios en blanco redundantes en archivos
findtf – encontrar archivos temporales
findul – encuentra bibliotecas posiblemente no utilizadas
zipdir – Recuperar el espacio perdido en las entradas del directorio ext2
Todas estas utilidades están disponibles en /usr/share/fslint/fslint/fslint location.

Por ejemplo, para encontrar duplicados en un directorio determinado, haz lo siguiente:

$ /usr/share/fslint/fslint/findup ~/Downloads/

Del mismo modo, 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, consulta la sección de ayuda y las páginas man.

$ /usr/share/fslint/fslint/fslint --help
$ man fslint

Conclusión

Ahora conoces tres herramientas para buscar 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 estoy contento con Rdfind hasta ahora.

 

Fuente: Original | maslinux