User prompt:
¿Me podrías dar un script de bash/linux que elimine:
* todos los directorios ipynb_checkpoint
* todos los node_modules
de los subdirectorios de la ruta actual?
| #!/bin/bash | |
| # Nombre del script: cleanup.sh | |
| # Descripción: Elimina recursivamente directorios .ipynb_checkpoints y node_modules | |
| # Colores para mensajes | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| NC='\033[0m' # No Color | |
| # Función para mostrar el uso de espacio antes de la limpieza | |
| show_space() { | |
| echo -e "${YELLOW}Espacio en disco antes de la limpieza:${NC}" | |
| df -h . | |
| } | |
| # Función para contar y mostrar los directorios que se van a eliminar | |
| count_directories() { | |
| echo -e "\n${YELLOW}Directorios encontrados:${NC}" | |
| ipynb_count=$(find . -type d -name ".ipynb_checkpoints" | wc -l) | |
| node_count=$(find . -type d -name "node_modules" | wc -l) | |
| echo -e "- ${GREEN}${ipynb_count}${NC} directorios .ipynb_checkpoints" | |
| echo -e "- ${GREEN}${node_count}${NC} directorios node_modules" | |
| total_size_ipynb=$(du -sh $(find . -type d -name ".ipynb_checkpoints") 2>/dev/null | awk '{sum += $1} END {print sum}') | |
| total_size_node=$(du -sh $(find . -type d -name "node_modules") 2>/dev/null | awk '{sum += $1} END {print sum}') | |
| echo -e "\nTamaño aproximado que se liberará:" | |
| echo -e "- .ipynb_checkpoints: ${GREEN}${total_size_ipynb}${NC}" | |
| echo -e "- node_modules: ${GREEN}${total_size_node}${NC}" | |
| } | |
| # Función principal de limpieza | |
| cleanup() { | |
| echo -e "\n${YELLOW}Iniciando limpieza...${NC}" | |
| # Eliminar .ipynb_checkpoints | |
| find . -type d -name ".ipynb_checkpoints" -exec rm -rf {} + | |
| # Eliminar node_modules | |
| find . -type d -name "node_modules" -exec rm -rf {} + | |
| echo -e "${GREEN}¡Limpieza completada!${NC}" | |
| } | |
| # Función para mostrar el espacio liberado | |
| show_space_saved() { | |
| echo -e "\n${YELLOW}Espacio en disco después de la limpieza:${NC}" | |
| df -h . | |
| } | |
| # Ejecución principal | |
| echo -e "${YELLOW}=== Script de Limpieza ===${NC}" | |
| echo -e "Este script eliminará todos los directorios:" | |
| echo -e "- ${RED}.ipynb_checkpoints${NC}" | |
| echo -e "- ${RED}node_modules${NC}" | |
| echo -e "en todos los subdirectorios de la ruta actual." | |
| # Preguntar confirmación | |
| read -p "¿Desea continuar? (s/N): " response | |
| if [[ "$response" =~ ^[Ss]$ ]]; then | |
| show_space | |
| count_directories | |
| # Preguntar confirmación final | |
| read -p "¿Confirma que desea eliminar estos directorios? (s/N): " final_response | |
| if [[ "$final_response" =~ ^[Ss]$ ]]; then | |
| cleanup | |
| show_space_saved | |
| else | |
| echo -e "\n${YELLOW}Operación cancelada por el usuario.${NC}" | |
| fi | |
| else | |
| echo -e "\n${YELLOW}Operación cancelada por el usuario.${NC}" | |
| fi |