1

🍎Crea un respaldo de todas tus imagenes en linux.

Hola yo soy Miguel, y en este tutorial te llevaré paso a paso para crear dos shell scripts que te ayudaran a recopilar todas las fotos almacenadas en linux. El primer shell script copiará las imágenes en un nuevo directorio, y el segundo shell script comprimirá la carpeta junto con las imágenes.
.

Necesitas:

  1. Terminal con bash, o zsh, o variantes como shell.
  2. Conceptos básicos de linux
  3. Comandos básicos de terminal
  4. Ganas de aprender

.

Bueno comencemos…

Necesitamos crear dos archivos con la extension sh, para eso ejecutamos:

touch cpimg.sh tarimg.sh

.
Ahora debemos otorgar permisos de ejecución a ambos archivos. A mi preferencia únicamente mi usuario tendrá tal permiso, y para lograrlo ejecutamos el siguiente comando:

chmod 766 cpimg.sh tarimg.sh

.

Primero escribiremos el código de cpimg.sh

.
Eres libre de usar tu editor de texto o código preferido, en mi caso yo usé nvim. Para ejecutar nvim en el archivo ejecutamos:

nvim cpimg.sh

.
Una vez nos encontremos editando el archivo es importante permitir a la terminal conocer que el archivo es un binario, por lo que debemos añadir la siguiente línea de código al comienzo del archivo:

#!/bin/bash

.
Es importante que nuestros scripts impriman mensajes conforme se van ejecutando los comandos, por lo que iniciaremos mostrando un mensaje que indique el inicio de ejecución del script:

echo"Inicio de búsqueda y copia de imágenes..." &&

.
Creamos un directorio para guardar las imágenes una vez sean localizadas, y también un mensaje indicando la creación del directorio:

mkdir -p my-images &&

echo "Directorio my-images creado" &&

.
Ahora iniciaremos la búsqueda de las imágenes con el comando find. Yo únicamente he indicado buscar imágenes con las siguientes extensiones:

  • png
  • jpg
  • jpeg
  • svg
  • raw
  • gif
  • heif
  • mbp
  • tiff
  • psd

.
Entonces añadimos el siguiente comando a nuestro script, junto con un mensaje de inicio y de finalización de la búsqueda y copia de imágenes con find y exec de parámetro:

echo "Buscando y copiando imágenes a directorio creado..." &&

find $(pwd) -type f \( -name"*.png" -o -name"*.jpg" -o -name"*.jpeg" -o -name"*.svg" -o -name"*.raw" -o -name"*.gif" -o -name"*.heif" -o -name"*.mbp" -o -name"*.tiff" -o -name"*.psd" \) -exec cp {} ./my-images/ \; &&

echo "Imágenes guardadas en el directorio"

.
En el comando find, donde se indica a partir de que ruta ejecutar el comando he usado $(pwd), lo que permite que su ejecución sea flexible. Cuando llames a la ejecución del script entonces tomará en cuenta la ruta en la que te encuentras posicionado en el momento de la ejecución y comenzará la búsqueda de las imágenes a partir de ese directorio. Además recuerda que la búsqueda es recursiva, lo que significa que buscará los archivos también dentro de subdirectorios y en subdirectorios dentro de estos.
.
Finalmente agregamos un mensaje de finalización de nuestro shell script:

echo"Copia de imágenes finalizada"

.
Guardamos y salimos de nvim o vim presionando la tecla ESC y escribiendo :wq o también :x
.
Listo, eso ha sido todo por parte de la recopilación y copia de imágenes a nuestro directorio creado. Ahora pasaremos a la creación de nuestro segundo shell script que además de realizar lo mismo que nuestro archivo cpimg.sh también comprimirá la carpeta junto con las imágenes como su contenido.
.
.
.

Programando nuestro segundo shell script tarimg.sh

.
Reutilizaremos el código de cpimg.sh, por lo que podemos fácilmente copiar y pegar todo su contenido en tarimg.sh. No te preocupes, yo te ahorraré ese paso, aquí tienes mi código de cpimg.sh, tiene comentarios que no añadí al tutorial. Copia y pega en el archivo tarimg.sh:

#!/bin/bash

#Mensaje de inicioecho"Inicio de búsqueda y copia de imágenes..." &&




#Creamos directorio para almacenar la copia de imágenesecho"Creando directorio para guardar imágenes..." &&

mkdir -p my-images &&

echo"Directorio my-images creado" &&



#Iniciamos búsqueda de imágenes y copiamos a la ruta actualecho"Buscando y copiando imágenes a directorio creado..." &&

find $(pwd) -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.svg" -o -name "*.raw" -o -name "*.gif" -o -name "*.heif" -o -name "*.mbp" -o -name "*.tiff" -o -name "*.psd" \) -exec cp {} ./my-images/ \; &&

echo"Imágenes guardadas en directorio"#Mensaje de finalizaciónecho"Copia de imágenes finalizada"

.
Muy bien, ahora removemos el último comando echo que indica la finalización de copia de imágenes:

#Mensaje de finalizaciónecho"Copia de imágenes finalizada"

.
Indicaremos la compresión del directorio y sus imágenes con el siguiente comando:

echo "Comprimiendo imágenes" &&

tar -czvf my-images.tar.gz ./my-images &&

echo "Se comprimió el directorio exitosamente" &&

.
Por último eliminamos el directorio y su contenido. Si deseas conservar la carpeta y su versión comprimida a la vez entonces ignora este paso.
.
Para eliminar el directorio y su contenido usamos el siguiente comando junto con otro mensaje que indique su ejecución:

echo"Removiendo directorio con imágenes" &&

rm -r $(pwd)/my-images &&

.
Por último agregamos el mensaje de finalización del script tarimg.sh:

echo"Compresión finalizada exitosamente"

.
Por último eliminamos el directorio y su contenido. Si deseas conservar la carpeta y su versión comprimida a la vez entonces ignora este paso.
.
Para eliminar el directorio y su contenido usamos el siguiente comando junto con otro mensaje que indique su ejecución:

echo"Removiendo directorio con imágenes" &&

rm -r $(pwd)/my-images &&

.
Por último agregamos el mensaje de finalización del script tarimg.sh, y guardamos los cambios en el archivo:

echo"Compresión finalizada exitosamente"

.
Puedes descomprimir el archivo con el comando:

tar -xzvf my-images.tar.gz

.

…-…-…-…-…-…-…-…


Así de fácil hemos creado nuestros scripts 😁

.
Lo último que haremos será agregar estos archivos a nuestra ruta de binarios, esto nos permitirá ejecutar los archivos como comandos en casi cualquier ruta.
.
Si utilizas bash deberás registrar los binarios en el archivo .bashrc o en el caso de zsh será en .zshrc, estos archivos los encuentras en tu directorio $HOME, para moverte a ese directorio ejecuta cualquiera de los siguientes comandos:

cd $HOME

o simplemente:

cd

.
Una vez encontrandote posicionado en el directorio home, podrás visualizar el directorio oculto source de tu shell listado con el siguiente comando:

ls -la

.
Habiendo confirmado la existencia de .bashrc o .zshrc debemos editarlo.
.
Aquí tienes dos opciones para llamar a los scripts a ejecutarse en la terminal:
a) Puedes crear un alias.
b) Agregar la ruta al $PATH de binarios.
.
.
A) Crear Alias
.
Al final del archivo añade la siguiente línea:

aliascpimg="/home/tu-usuario/ruta-de-tus-shell-scripts/cpimg.sh"aliastarimg="/home/tu-usuario/ruta-de-tus-shell-scripts/tarimg.sh"

✳️ Puedes renombrar el nombre de los alias a tu gusto.
✴️ Si quieres obtener la ruta de tus shell scripts puedes abrir otra terminal, luego posicionate en el directorio de tus shell scrips y ejecuta el comando: pwd, copia la ruta y utilizala en la creación de tus alias.
.
Ahora debes guardar los cambios en el archivo, y finalmente reinicia la terminal. Puedes simplemente cerrar y volver a abrir la terminal. También puedes ejecutar bash o source bash en el caso de tener bash, o si tienes zsh ejecuta zsh o source zsh.

.
.
B) Agregar la ruta al $PATH de binarios
.
Al final del archivo que carga tu shell agrega la siguiente línea:

PATH=$PATH:/home/tu-usuario/ruta-de-tus-shell-scripts

✴️Después de los dos puntos agrega la ruta de tus scripts, dicha ruta recuerda que la puedes obtener ejecutando el comando pwd en el directorio de los scripts.
.
Guarda los cambios y reinicia tu shell.
.

🟣Si agregaste los scripts mediante aliases entonces solo necesitas ejecutar el nombre del alias para que se ejecute el script que desees.
.
🟡Si agregaste los scripts a la ruta de binarios deberás llamarles junto con su extensión .sh, por ejemplo tarimg.sh o cpimg.sh
.
.
.
…-…-…-…-…-…-…-…


Eso ha sido todo vaquer@ 🤠

Si necesitas ayuda puedes apoyarte con mis shell scripts, los cuales he subido a un repositorio en Github, puedes acceder al repositorio dando click al siguiente enlace:

🚀Mi repositorio

¡Envía tu pull request!
Me haría muy feliz enriquecer el repositorio juntos.

.
🎉Muchas gracias por haber llegado hasta el final.
📝 Nunca pares de aprender.

Escribe tu comentario
+ 2
1
25 días

¡Qué genial, Miguel! ¿Alguna vez imaginaste que las fotos en Linux podían organizarse como si fueran dibujos para colorear? Este tutorial es como un pincel mágico para tus archivos. Y hablando de magia, en ColorearW.com puedes descargar y colorear PDF gratis con solo un clic. ¡Swish, splash, colores a volar!

1

From an analytical perspective, the message is clear, engaging, and encourages collaboration great for fostering a developer community. However, adding a brief description of what the shell scripts do could improve clarity. This kind of openness and sharing aligns well with creative platforms like ColorearW.net, where users freely download and print PDF coloring pages.