Check the new version here

Popular channels

Script bash:archivos repetidos y moverlos a directorio

En ocasiones nuestro sistema cuenta con respaldos duplicados, manteniendo almacenada la misma información ocupando espacio innecesariamente en nuestro ordenador con multitud de archivos repetidos de todo tipo (fotos, documentos, videos…), que nos pueden llevar toda una vida organizar.

Ahora con tan solo unas pocas lineas de código, podemos realizar ese trabajo rápidamente, adaptándolo a nuestras necesidades, pudiendo modificar los parámetros para realizar la búsqueda con un filtro definido y moverlos al directorio que deseemos, y después realizar el mantenimiento planificado de backup que se requiera.

El registro de los archivos que se mueven, quedan en una bitácora que se guarda en un archivo creado en el mismo directorio donde se encuentra el script original. A ese registro con las operaciones realizadas le llamaremos directorios.dat

Explicado linea a linea, podemos ir entendiendo como funciona:

#!/bin/bash

j=0 #Contador, que te permite mantener un identificador de nombre único, para el archivo a mover

for i in $(find /home -type f -name "Nombre_Archivo_Buscar" ) ; # Buscar todos los archivos recursivamente teniendo como origen para este ejemplo la carpeta /home

do

let j=j+1 #Incrementando el contador para el "ID" del nombre del archivo.

mv $i /ruta/destino/carpeta/Nombre_Archivo_Buscar$"_"$j -v >> directorios.dat;

# Movemos el archivo $i a la ruta /ruta/destino/carpeta/
# El archivo original es pasado a la ruta de destino, armándolo con la cadena fija del nombre del archivo a buscar, concatenado con el carácter "_" mas el valor del contador utilizado para armarlo con un consecutivo.

done;


Una vez creado el script necesario que modificamos lo permisos del mismo, para permitir su ejecución.

chmod +x script

Ahora simplemente nos falta probarlo y/o adaptarlo a nuestros requerimientos. No es la barita mágica de Harry Potter, pero puede cumplir con alguna de las necesidades de mantenimiento de nuestras copias de seguridad.

./script

En la siguiente imagen podemos apreciar los pasos necesarios para implementar el script. Vamos a utilizar tmux para poderlo ver todo en una sola ventana:



Y aquí tenéis el código del script, tan solo teneis que copiarlo en un editor de texto, guardarlo y seguir los pasos que comentábamos antes para personalizarlo a vuestro gusto:

# !/bin/bash
j=0
for i in $(find /home -type f -name "Nombre_Archivo_Buscar" ) ;
do
let j=j+1
mv $i /ruta/destino/carpeta/Nombre_Archivo_Buscar$"_"$j -v >> directorios.dat;
done;
0No comments yet
      GIF
      New