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 |