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