LINUX

Cómo buscar y eliminar archivos duplicados en Linux

Hola a todos, hoy vamos a aprender cómo encontrar y eliminar archivos duplicados en su PC o servidor Linux. Entonces, aquí hay herramientas que puede usar cualquiera de ellas de acuerdo con sus necesidades y comodidad.

Ya sea que esté usando Linux en su escritorio o en un servidor, existen buenas herramientas que escanearán su sistema en busca de archivos duplicados y lo ayudarán a eliminarlos para liberar espacio. Se encuentran disponibles interfaces gráficas sólidas y de línea de comandos. Los archivos duplicados son una pérdida innecesaria de espacio en disco. Después de todo, si realmente necesita el mismo archivo en dos ubicaciones diferentes, siempre puede configurar un enlace simbólico o un enlace físico, almacenando los datos en una sola ubicación en el disco.

1) FSlint

FSlint está disponible en varios repositorios binarios de distribuciones de Linux, incluidos Ubuntu, Debian, Fedora y Red Hat. Simplemente inicie su administrador de paquetes e instale el paquete «fslint». Esta utilidad proporciona una interfaz gráfica conveniente de forma predeterminada y también incluye versiones de línea de comandos de sus diversas funciones.

Sin embargo, no dejes que eso te asuste y no uses la conveniente interfaz gráfica de FSlint. De forma predeterminada, se abre con el panel Duplicados seleccionado y su directorio de inicio como la ruta de búsqueda predeterminada.

Instalación

Para instalar fslint, ya que estoy ejecutando ubuntu, aquí está el comando predeterminado:

# apt-get install fslint

Pero aquí están los comandos de instalación para otras distribuciones de Linux:

Debian:

# svn checkout http://fslint.googlecode.com/svn/trunk/ fslint-2.45
# cd fslint-2.45
# dpkg-buildpackage -I.svn -rfakeroot -tc
# dpkg -i ../fslint_2.45-1_all.deb

Fedora:

# yum install fslint

Para OpenSuse:

# [ -f /etc/mandrake-release ] && pkg=rpm
# [ -f /etc/SuSE-release ] && pkg=packages
# wget http://www.pixelbeat.org/fslint/fslint-2.42.tar.gz
# rpmbuild -ta fslint-2.42.tar.gz
# rpm -Uvh /usr/src/$pkg/RPMS/noarch/fslint-2.42-1.*.noarch.rpm

Para otra distribución:

# wget http://www.pixelbeat.org/fslint/fslint-2.44.tar.gz
# tar -xzf fslint-2.44.tar.gz
# cd fslint-2.44
# (cd po && make)
# ./fslint-gui

Ejecute fslint

Para ejecutar fslint en la versión GUI, ejecute fslint-gui en Ubuntu, ejecute el comando (Alt + F2) o la terminal:

$ fslint-gui

De forma predeterminada, se abre con el panel Duplicados seleccionado y su directorio de inicio como la ruta de búsqueda predeterminada. Todo lo que tiene que hacer es hacer clic en el botón Buscar y FSlint encontrará una lista de archivos duplicados en directorios debajo de su carpeta de inicio.

Eliminar archivos duplicados con Fslint

Utilice los botones para eliminar los archivos que desee eliminar y haga doble clic en ellos para obtener una vista previa.

Finalmente, ha terminado. Hurra, hemos eliminado con éxito los archivos duplicados de su sistema.

Nota que las utilidades de la línea de comandos no están en su camino de forma predeterminada, por lo que no puede ejecutarlas como los comandos típicos. En Ubuntu, los encontrará en / usr / share / fslint / fslint. Entonces, si quisiera ejecutar todo el escaneo fslint en un solo directorio, aquí están los comandos que ejecutaría en Ubuntu:

cd / usr / share / fslint / fslint

./fslint / ruta / al / directorio

Este comando en realidad no eliminará nada. Simplemente imprimirá una lista de archivos duplicados; el resto estará solo.

$ /usr/share/fslint/fslint/findup --help
 find dUPlicate files.
 Usage: findup [[[-t [-m|-d]] | [--summary]] [-r] [-f] paths(s) ...]

 If no path(s) specified then the current directory is assumed.
  
 When -m is specified any found duplicates will be merged (using hardlinks).
 When -d is specified any found duplicates will be deleted (leaving just 1).
 When -t is specified, only report what -m or -d would do.
 When --summary is specified change output format to include file sizes.
 You can also pipe this summary format to /usr/share/fslint/fslint/fstool/dupwaste
 to get a total of the wastage due to duplicates.

ayuda de fslint

2) Fdupes

FDUPES es un programa para identificar o eliminar archivos duplicados que residen en directorios específicos escritos por Adrian Lopez. Puedes mirar el Proyecto GitHub.

Instalar fdupes

Para instalar fdupes, haga lo siguiente:

En Centos 7:

# yum install fdupes
Loaded plugins: fastestmirror
base                                                                                                                           | 3.6 kB  00:00:00     
epel/x86_64/metalink                                                                                                           |  12 kB  00:00:00     
epel                                                                                                                           | 4.3 kB  00:00:00     
extras                                                                                                                         | 3.4 kB  00:00:00     
updates                                                                                                                        | 3.4 kB  00:00:00     
(1/2): epel/x86_64/updateinfo                                                                                                  | 817 kB  00:00:00     
(2/2): epel/x86_64/primary_db                                                                                                  | 4.8 MB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.linode.com
 * epel: fedora-epel.mirrors.tds.net
 * extras: mirrors.linode.com
 * updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package fdupes.x86_64 1:1.6.1-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package                           Arch                              Version                                    Repository                       Size
======================================================================================================================================================
Installing:
 fdupes                            x86_64                            1:1.6.1-1.el7                              epel                             28 k

En Ubuntu 16.04:

# apt install fdupes
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages were automatically installed and are no longer required:
 libdvdnav4 libdvdread4 libenca0 libguess1 librubberband2v5 libsdl2-2.0-0 libsndio6.1 libva-wayland1 libva-x11-1 mpv rtmpdump
Use 'sudo apt autoremove' to remove them.

Buscar archivos duplicados

El comando fdupes busca duplicados en una carpeta indicada. La sintaxis es la siguiente

   fdupes [ options ] DIRECTORY

Creemos algunos archivos duplicados. Crearemos una carpeta y 10 archivos con el mismo contenido

# mkdir labor && for i in {1..10}; do echo "Hello, let us try fdupes command" > labor/drago${i} ; done
# mkdir labor/package && for i in {1..10}; do echo "Hello, let us try fdupes recursively" > labor/package/pack${i} ; done

Comprobemos el resultado

# ls -lR labor/
labor/:
total 44
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago10
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago1
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago2
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago3
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago4
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago5
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago6
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago7
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago8
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago9
drwxr-xr-x 2 root root 4096 Sep  9 23:51 package

labor/package:
total 40
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack10
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack1
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack2
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack3
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack4
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack5
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack6
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack7
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack8
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack9

Vemos que todo nuestro archivo existe. Ahora podemos buscar archivos duplicados como se muestra a continuación

# fdupes labor/
labor/drago8
labor/drago2
labor/drago7
labor/drago5
labor/drago1
labor/drago3
labor/drago4
labor/drago10
labor/drago6
labor/drago9

Puede ver que tenemos los 10 archivos duplicados enumerados anteriormente.

Busque archivos duplicados de forma recursiva y muestre el tamaño

Ha visto que el resultado anterior no muestra los archivos duplicados creados anteriormente en mano de obra / paquete directorio. Para buscar archivos duplicados en un directorio y sus subdirectorios, usamos la opción -r y puede ver el tamaño de cada archivo duplicado con -S parámetro de la siguiente manera

# fdupes -rS labor
33 bytes each:                          
labor/drago8
labor/drago2
labor/drago7
labor/drago5
labor/drago1
labor/drago3
labor/drago4
labor/drago10
labor/drago6
labor/drago9

37 bytes each:
labor/package/pack10
labor/package/pack6
labor/package/pack4
labor/package/pack7
labor/package/pack1
labor/package/pack3
labor/package/pack5
labor/package/pack2
labor/package/pack8
labor/package/pack9

Con el resultado, puede comprender que los archivos duplicados tienen el mismo tamaño, por lo que el mismo contenido.

Es posible omitir el primer archivo al buscar archivos duplicados

Eliminar los archivos duplicados

Para eliminar archivos duplicados, usamos el -d parámetro. fdupes preguntará qué archivos conservar

# fdupes -rd labor/
[1] labor/drago8
[2] labor/drago2
[3] labor/drago7
[4] labor/drago5
[5] labor/drago1
[6] labor/drago3
[7] labor/drago4
[8] labor/drago10
[9] labor/drago6
[10] labor/drago9

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

   [+] labor/drago8
   [-] labor/drago2
   [-] labor/drago7
   [-] labor/drago5
   [-] labor/drago1
   [-] labor/drago3
   [-] labor/drago4
   [-] labor/drago10
   [-] labor/drago6
   [-] labor/drago9

[1] labor/package/pack10
[2] labor/package/pack6
[3] labor/package/pack4
[4] labor/package/pack7
[5] labor/package/pack1
[6] labor/package/pack3
[7] labor/package/pack5
[8] labor/package/pack2
[9] labor/package/pack8
[10] labor/package/pack9

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

   [-] labor/package/pack10
   [-] labor/package/pack6
   [-] labor/package/pack4
   [-] labor/package/pack7
   [-] labor/package/pack1
   [-] labor/package/pack3
   [-] labor/package/pack5
   [+] labor/package/pack2
   [-] labor/package/pack8
   [-] labor/package/pack9

Podemos comprobar el resultado de la siguiente manera.

# ls -lR labor/
labor/:
total 8
-rw-r--r-- 1 root root   33 Sep  9 23:51 drago8
drwxr-xr-x 2 root root 4096 Sep 10 00:07 package

labor/package:
total 4
-rw-r--r-- 1 root root 37 Sep  9 23:51 pack2

Puedes ver que hemos conservado drago8 y paquete2 archivos

Conclusión

Hemos visto cómo eliminar archivos duplicados en Linux tanto gráficamente como en la línea de comandos. Puede utilizar una de las herramientas según sus necesidades. Es importante verificar el archivo duplicado para ahorrar espacio en su servidor.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar