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;
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;