8- Script para Eliminar Archivos Duplicados
Este comando ejecuta fdupes sin argumentos. No hace nada sin una ruta proporcionada. Este script se encarga de: ...
Comando 1: fdupes
fdupes
Este comando ejecuta fdupes
sin argumentos. No hace nada sin una ruta proporcionada.
Comando 2: fdupes .
fdupes .
fdupes .
: Busca archivos duplicados en el directorio actual (.
).- Salida: Muestra grupos de archivos duplicados en bloques separados por líneas en blanco. Cada archivo en un grupo tiene contenido idéntico al resto.
Comando 3: command -v fdupes
command -v fdupes
command -v
: Verifica si un comando existe en el sistema.fdupes
: Especifica el comando a buscar.- Salida: Si
fdupes
está instalado, devuelve su ruta completa (por ejemplo,/usr/bin/fdupes
). Si no está instalado, no produce salida y devuelve un código de error.
Comando 4: fdupes -r .
fdupes -r .
-r
(recursivo): Indica quefdupes
debe buscar archivos duplicados en el directorio actual y sus subdirectorios.- Salida: Muestra grupos de archivos duplicados en todos los directorios y subdirectorios.
Comando 5: fdupes -r . | sed 's/^..//'
fdupes -r . | sed 's/^..//'
fdupes -r .
: Busca archivos duplicados de forma recursiva.|
: Pasa la salida del comando anterior como entrada al siguiente comando.sed 's/^..//'
: Usased
para eliminar los dos primeros caracteres de cada línea de salida.
En este caso, los dos caracteres eliminados suelen ser espacios o caracteres de formato que
fdupes
agrega al inicio de las líneas para marcar grupos de duplicados.
Paso 1: Verificar si fdupes
está instalado
El script comienza verificando si el comando fdupes
está disponible en el sistema. Si no está instalado, se informa al usuario y se termina el script.
if ! command -v fdupes &> /dev/null
then
echo "fdupes no está instalado. Debes instalarlo mediante 'apt install fdupes' y volver a ejecutar el script."
exit 1
fi
command -v fdupes
: Comprueba si el comandofdupes
está en el sistema.&> /dev/null
: Redirige la salida estándar y de error para que no se muestre en pantalla.exit 1
: Termina el script con un código de error.
Paso 2: Buscar archivos duplicados
Se utiliza el comando fdupes
con la opción -r
para buscar archivos duplicados de manera recursiva en el directorio actual (.
). Luego, sed
se usa para eliminar los primeros dos caracteres de las líneas que genera fdupes
.
archivo=$(fdupes -r . | sed 's/^..//')
fdupes -r .
: Busca archivos duplicados en el directorio actual y sus subdirectorios.sed 's/^..//'
: Elimina los dos primeros caracteres de cada línea de salida, que normalmente son espacios o caracteres adicionales.
Paso 3: Leer los archivos duplicados y eliminarlos
El script utiliza un bucle while
para leer línea por línea cada archivo duplicado encontrado por fdupes
y los elimina con rm
.
echo "$archivo" | while read -r line; do
rm "$line"
done
echo "$archivo"
: Toma la lista de archivos duplicados generada anteriormente.while read -r line
: Lee cada línea de la lista.rm "$line"
: Elimina el archivo correspondiente.
Script completo
#!/bin/bash
if ! command -v fdupes &> /dev/null
then
echo "fdupes no está instalado. Debes instalarlo mediante 'apt install fdupes' y volver a ejecutar el script."
exit 1
fi
archivo=$(fdupes -r . | sed 's/^..//')
echo "$archivo" | while read -r line; do
rm "$line"
done
Este script se encarga de:
- Verificar si
fdupes
está instalado. - Buscar archivos duplicados recursivamente en el directorio actual.
- Eliminar los archivos duplicados encontrados.