-
Notifications
You must be signed in to change notification settings - Fork 0
/
ordenarCarpetaDescargas.sh
82 lines (67 loc) · 2.99 KB
/
ordenarCarpetaDescargas.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash
Monitorear="/home/isaac/Descargas"
DestinoPNG="/home/isaac/Imágenes/png"
DestinoJPG="/home/isaac/Imágenes/jpg"
DestinoOtros="/home/isaac/Imágenes/otrosFormatos"
DestinoWallpapers="/home/isaac/Imágenes/wallpapers"
DestinoPDF="/home/isaac/Documentos/pdf"
DestinoComprobantes="/home/isaac/Documentos/comprobantesBlackBoard"
# Función para mover archivos según el tipo
mover_archivo() {
archivo="$1"
# Asegura que no se muevan archivos temporales o incompletos.
if [[ "$archivo" == *.part || "$archivo" == *.crdownload ]]; then
return
fi
# Si el archivo comienza con 'wallp'.
if [[ "$archivo" == wallp* ]]; then
mv "$Monitorear/$archivo" "$DestinoWallpapers/"
echo "El archivo $archivo ha sido movido a $DestinoWallpapers."
# Si el archivo es .jpg o .jpeg.
elif [[ "$archivo" == *.jpg || "$archivo" == *.jpeg ]]; then
mv "$Monitorear/$archivo" "$DestinoJPG/"
echo "El archivo $archivo ha sido movido a $DestinoJPG."
# Si el archivo es .png.
elif [[ "$archivo" == *.png ]]; then
mv "$Monitorear/$archivo" "$DestinoPNG/"
echo "El archivo $archivo ha sido movido a $DestinoPNG."
# Otros formatos de imagen.
elif [[ "$archivo" == *.gif || "$archivo" == *.bmp || "$archivo" == *.tiff || "$archivo" == *.webp || "$archivo" == *.heic || "$archivo" == *.ico ]]; then
mv "$Monitorear/$archivo" "$DestinoOtros/"
echo "El archivo $archivo ha sido movido a $DestinoOtros."
# Si el archivo es .pdf.
elif [[ "$archivo" == *.pdf ]]; then
mv "$Monitorear/$archivo" "$DestinoPDF/"
echo "El archivo $archivo ha sido movido a $DestinoPDF."
# Formatos vectoriales.
elif [[ "$archivo" == *.svg || "$archivo" == *.eps || "$archivo" == *.ai ]]; then
mv "$Monitorear/$archivo" "$DestinoOtros/"
echo "El archivo $archivo ha sido movido a $DestinoOtros."
# Archivos de comprobación de entrega de tareas.
elif [[ "$archivo" == receipt-* ]]; then
mv "$Monitorear/$archivo" "$DestinoComprobantes/"
echo "El archivo $archivo ha sido movido a $DestinoComprobantes."
# Cualquier otro archivo que no coincida.
else
echo "Formato de archivo no reconocido: $archivo"
fi
}
# Procesar archivos ya existentes en la carpeta
for archivo in "$Monitorear"/*; do
# Solo procesar si es un archivo regular
if [[ -f "$archivo" ]]; then
archivo=$(basename "$archivo") # Obtener solo el nombre del archivo
mover_archivo "$archivo"
fi
done
# Monitorea la carpeta para archivos nuevos tanto creados como movidos.
inotifywait -m "$Monitorear" -e create -e moved_to |
while read directorio evento archivo; do
echo "Archivo detectado: $archivo" # Mensaje de depuración
# Asegurar que el archivo realmente exista antes de moverlo
if [[ -f "$Monitorear/$archivo" ]]; then
mover_archivo "$archivo"
else
echo "El archivo $archivo no existe o está incompleto."
fi
done