Vamos a crear un script que ordene archivos de forma automática en función de la
extensión que tengan:
#!/bin/bash
# Crear las carpetas si no existen
mkdir -p imagenes videos documentos
# Iterar sobre cada archivo en el directorio actual
for archivo in *
do
# Obtener el nombre base del archivo sin la ruta
nombre_base=$(basename "$archivo")
# Obtener la extensión del archivo usando awk
extension=$(echo "$nombre_base" | awk -F '.' '{print $NF}')
# Mover el archivo a la carpeta correspondiente según su extensión
case "$extension" in
jpg|png)
mv "$archivo" imagenes/
echo "Movido $archivo a la carpeta imagenes"
;;
mp4|mkv)
mv "$archivo" videos/
echo "Movido $archivo a la carpeta videos"
;;
txt|doc)
mv "$archivo" documentos/
echo "Movido $archivo a la carpeta documentos"
;;
*)
echo "Archivo $archivo no se movió, extensión desconocida: $extension"
;;
esac
done
También podríamos comprimir todas estas carpetas y después enviar dicho archivo
comprimido a un servidor ftp:
#!/bin/bash
# Crear las carpetas si no existen
mkdir -p imagenes videos documentos
# Iterar sobre cada archivo en el directorio actual
for archivo in *
do
# Obtener el nombre base del archivo sin la ruta
nombre_base=$(basename "$archivo")
# Obtener la extensión del archivo usando awk
extension=$(echo "$nombre_base" | awk -F '.' '{print $NF}')
# Mover el archivo a la carpeta correspondiente según su extensión
case "$extension" in
jpg|png)
mv "$archivo" imagenes/
echo "Movido $archivo a la carpeta imagenes"
;;
mp4|mkv)
mv "$archivo" videos/
echo "Movido $archivo a la carpeta videos"
;;
pdf|docx)
mv "$archivo" documentos/
echo "Movido $archivo a la carpeta documentos"
;;
*)
echo "Archivo $archivo no se movió, extensión desconocida: $extension"
;;
esac
done
# Comprimir archivos
zip -r copia_seguridad.zip imagenes/ videos/ documentos/
# Detalles de conexión FTP
servidor='192.168.0.25'
usuario='mario-server'
clave='password123'
ruta_archivo_local=copia_seguridad.zip
archivo_remoto="/home/mario-server/copia_seguridad.zip"
# Subir archivo mediante curl
if curl -u "$usuario:$clave" -T "$ruta_archivo_local" "ftp://$servidor/$archivo_remoto"; then
echo "Archivo subido exitosamente al servidor FTP."
# Limpiar archivo zip local después de la subida
rm "$ruta_archivo_local"
else
echo "Error al subir el archivo al servidor FTP."
fi