Automatizando la limpieza de archivos con Bash y Python

 

En este artículo, exploraremos cómo combinar la potencia de Bash y Python para crear un script que automatice la limpieza de archivos en un directorio. Vamos a desarrollar un programa que busque archivos no deseados por su extensión y los mueva a una carpeta de respaldo para su posterior revisión o eliminación. Esta tarea puede ser especialmente útil cuando se trabaja con proyectos que generan múltiples archivos temporales o cuando se desea organizar archivos en un directorio específico.

Bash y Python: Una combinación poderosa

La utilización de Bash y Python en conjunto nos brinda la flexibilidad y el control necesarios para realizar operaciones complejas en el sistema de archivos. Mientras que Bash es ideal para la interacción con el sistema operativo y la manipulación de archivos, Python ofrece capacidades adicionales para el procesamiento de datos y el trabajo con estructuras más complejas.

Requisitos previos

Asegúrate de tener instalados tanto Bash como Python en tu sistema antes de continuar con el siguiente código.

El script de limpieza

A continuación, presentamos el código del script de limpieza que combina Bash y Python:

#!/bin/bash

# Directorio donde se buscarán los archivos no deseados
DIRECTORIO_ORIGEN="/ruta/a/directorio"

# Directorio de respaldo para los archivos no deseados
DIRECTORIO_RESPALDO="/ruta/a/directorio_respaldo"

# Crear directorio de respaldo si no existe
mkdir -p $DIRECTORIO_RESPALDO

# Buscar archivos no deseados y moverlos al directorio de respaldo
find $DIRECTORIO_ORIGEN -type f -name "*.tmp" -o -name "*.bak" -o -name "*.log" | while read archivo; do
 mv "$archivo" $DIRECTORIO_RESPALDO
done

# Ejecutar el script de Python para procesar archivos adicionales
python procesar_archivos.py $DIRECTORIO_RESPALDO

 

#!/usr/bin/env python3

import os

def procesar_archivos(directorio):
 for root, _, files in os.walk(directorio):
 for archivo in files:
 ruta_archivo = os.path.join(root, archivo)
 # Agregar aquí el procesamiento adicional de los archivos, si es necesario
 # Ejemplo: imprimir el nombre de cada archivo encontrado
 print(f"Archivo encontrado: {ruta_archivo}")

if __name__ == "__main__":
 directorio_respaldo = sys.argv[1]
 procesar_archivos(directorio_respaldo)

Explicación del código

En el script `clean_files.sh`, primero definimos las rutas de los directorios donde se buscarán los archivos no deseados (`DIRECTORIO_ORIGEN`) y donde se guardarán temporalmente (`DIRECTORIO_RESPALDO`). Luego, utilizamos el comando `find` de Bash para buscar archivos con extensiones específicas (`.tmp`, `.bak`, y `.log`) y los movemos al directorio de respaldo con `mv`.

Después, invocamos el script de Python `procesar_archivos.py` desde Bash, pasando como argumento el directorio de respaldo. En el script de Python, utilizamos la biblioteca `os` para recorrer el directorio de respaldo y procesar los archivos de alguna manera (en este caso, simplemente imprimimos sus nombres).

Esto es solo un articulo de prueba..