elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Duda en bash
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda en bash  (Leído 3,045 veces)
Flakito81


Desconectado Desconectado

Mensajes: 519



Ver Perfil
Duda en bash
« en: 12 Abril 2010, 20:02 pm »

Hola a tod@s!!!

Mi duda es "simple" ¿cómo puedo saber el espacio físico que ocupa un fichero en disco? No el valor que da ls -l, wc -c, stat -c %s, ... sino el físico.

He pasado buena parte de la tarde de ayer intentando solucionarlo y no hay manera.

Gracias!!


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Duda en bash
« Respuesta #1 en: 12 Abril 2010, 22:14 pm »

Hola Flakito81   :-*

Querras considerar el comando:

Código:
bash$  du   -sh   fichero

Puede ser fichero o carpeta vamos loquesea.

Besis   :-*


« Última modificación: 12 Abril 2010, 23:44 pm por Leo Gutiérrez. » En línea

Flakito81


Desconectado Desconectado

Mensajes: 519



Ver Perfil
Re: Duda en bash
« Respuesta #2 en: 13 Abril 2010, 00:34 am »

Hola ^Tifa^  cuánto tiempo!! :)

El post me quedó incompleto porque me faltó incluir que no puedo usar el du xDD

Me he puesto a investigar por las opciones del ls y de los diferentes comandos, en especial del stat y he observado lo siguiente:

Código
  1. ls -ls [archivo | directorio]
  2.  
Me muestra en la primera columna el tamaño en bloque, que viene a coincidir con lo que me da el du

Código
  1. stat -c "%b %B" <archivo | *>
  2.  
Me da el numero de bloques del archivo y el tamaño de cada bloque, por lo que multiplicando llegaría al mismo resultado (exceptuando las unidades, pero que es fácil de solucionar).

Muchas gracias por responder y espero que si existe alguna corrección la comenten :)
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Duda en bash
« Respuesta #3 en: 13 Abril 2010, 02:11 am »

Ok no puedes usar du  pero si puedes usar ls  entonces haz considerado usar:

ls  -sh   fichero

Aca te sale el tamano real (En KB o MB depende el tamanio del fichero o carpeta). No en Bloques... aunque ciertamente yo no se si tu buscas el tamanio obligatoriamente en bloques o en KB y MB... esta parte no la haz expuesto.
En línea

Flakito81


Desconectado Desconectado

Mensajes: 519



Ver Perfil
Re: Duda en bash
« Respuesta #4 en: 13 Abril 2010, 22:31 pm »

Muchas gracias por responder ^Tifa^!!

Cierto es que no he explicado todo el problema. Te comento brevemente el script:
Lo que pretende es que pasado un directorio muestre cuantos archivos tiene ese directorio con el tamaño real, fisico, ... si tiene subdirectorios que entre en ellos y haga lo propio y finalmente me va a quedar una serie de filas con el la ruta del directorio/subdirectorio y la información antes mencionada y, además, la suma de todas ellas. Algo asi:
Código:
Path                                        T-Real  T-Fisico  N-Archivos
/home/Flakito81/directorio         1200     4096      13
/home/Flakito81/directorio/a      23        4096        1
/home/Flakito81/directorio/a/b   0          0             0
/home/Flakito81/directorio/otro  560      4096        3
Total                                        1783   12288      17

Obviamente como se puede intuir es una funcion recursiva.

El tema de ls  -sh   fichero lo contenplé pero no me sirve xq las cantidades están en diferentes unidades. Lo que si me interesa y quizas lo haga es hacer ese cambio de unidades para que sea más entendible, pero por ahora solo sabría hacerlo en la suma final .

Por ello opté por lo siguiente: (espero optimizarlo más, pero mi mente piensa en C :) )
Código
  1. BLOCK=$(stat -c "%B" $0);
  2. for f in `stat -c "%b" * | grep -v ^d |awk '{print $1}'`; do
  3.        fsize=$((fsize+(f*BLOCK)))
  4. done
  5.  

Un abrazo!!! :P

PD: Disculpa como se muestra lo que debería ser la salida del script pero cuando he posteado lo alineé todo.

PD: Quizas esta semana muestre el código, junto con otro que tmb dije que subiría
« Última modificación: 13 Abril 2010, 22:34 pm por Flakito81 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con condición BASH
Scripting
.:UND3R:. 2 1,957 Último mensaje 8 Noviembre 2013, 02:08 am
por .:UND3R:.
(Bash)Me corroe la duda
Scripting
Mr_Black 2 1,911 Último mensaje 8 Enero 2015, 20:08 pm
por Mr_Black
Duda-BASH-- Monitorización de procesos
Scripting
ToLoMaTo 1 1,491 Último mensaje 22 Enero 2016, 15:52 pm
por ToLoMaTo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines