Ver la Versión Completa : [ CONSULTA ] Saber cuanto ocupa un archivo o carpeta y meterlo en una variable
Quería poder saber cuanto ocupa una carpeta o archivo determinado y poder manejar esa información con tasker poder decir que no haga tal cosa si el archivo o carpeta tal ocupa más o menos de tantos megas o gigas. Lo que quiero es antes de hacer un backup con Folder Sync si ocupa tanto que no haga ese backup, yo tengo que al conectar al wifi me los hag pero a veces es muy pesada la carpeta y preferiría que haga uno especial que lo tengo configurado a la noche solo si se está cargado y a determinada hora solo si ocupa mucho
Caravantes
12/02/14, 15:07:10
En la acción (misc) PRUEBA tienes un tipo de prueba llamado FILE SIZE (tamaño de fichero) que puedes aplicar sobre el fichero que quieras y en la misma acción decides en cuál variable se guardará el resultado. No creo que funcione con carpetas.
Funciona, Gracias!! me tira un numero con cada carpeta que lo acciono, pongo para probar un If si "%tam"es Mayor o menot a ese resultado y vibra o no en funcion si es mayor o menor
Hora estoy media perdida en una estupidez que seguro alguno debe saber en que media lo claculua?? la carpeta pesa 1.48 gigas (un giga y medio mas o menos) y el numero que sale es 32768, son kilobytes? pero segun una pagina quec calcula 32768 kilobytes son 0.03125 gigabyte. De echo si pongo ese numero y lo pong en todas las medidas ninguna me da 1.48 gigas o aproximadamente.
EDITO: Me parece que no calcula los tamaños no se bien que hace ni que es ese numero, porque todas las carpetas que pongo me tira dos numeros o "16384" o " 32768"
maid450
13/02/14, 07:41:19
Para directorios puedes usar el comando de terminal "du" (disk usage):
du -s /ruta/al/directorio | awk '{print $1}'
El du -s muestra el tamaño total de la carpeta (sumando el de las subcarpetas si las hay) y a continuación el nombre del directorio, con el awk nos quedamos solo con el numero.
Es en KB, para sacarlo en MB tienes que dividir por 1024, o por 1048576 (1024x1024) para sacarlo en GB
Para directorios puedes usar el comando de terminal "du" (disk usage):
du -s /ruta/al/directorio | awk '{print $1}'El du -s muestra el tamaño total de la carpeta (sumando el de las subcarpetas si las hay) y a continuación el nombre del directorio, con el awk nos quedamos solo con el numero.
Es en KB, para sacarlo en MB tienes que dividir por 1024, o por 1048576 (1024x1024) para sacarlo en GB
Graciass, funcionan perfecto!!!!!! !!!! como siempre con tus respuestas :-)
Te hago otra consulta si quisiese sumar cada una y poner un numero total de todas, cual seria la mejor manera de hacerlo? sacar variables de todas y sumar esas variables? igual esa ultima tampoco se hacerla jaja.
maid450
13/02/14, 14:16:16
Me alegro de que te funcione :-D
Pues yo lo que haría es usar un bucle, algo así:
Establecer variable %carpetas a /ruta/carpeta1,/ruta/carpeta2,/ruta/carpeta3,...
Establecer variable %suma a 0
For variable %carpeta valores %carpetas
Ejecutar comando "du -s %carpeta | awk '{print $1}'" guardar salida en %resultado
Aquí puedes hacer lo que quieras con %carpeta y %resultado, que son la carpeta que se está procesando y su tamaño
Sumar %resultado a variable %suma
End for
Aquí %suma es la suma total del valor de las carpetas
Caravantes
13/02/14, 17:04:06
Establecer variable %carpetas a /ruta/carpeta1,/ruta/carpeta2,/ruta/carpeta3,...
stablecer variable %suma a 0
For variable %carpeta valores %carpetas...
Gracias, Maid. Es un método muy bueno.
Para completar el asunto se me ocurre otra pregunta un poco más general: ¿Cuál es el método para meter en una matriz de ese tipo todas las subcarpetas que haya en un directorio concreto? ¿Y para meter en la matriz todos los archivos de ese directorio?
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.