Tengo un directorio con un montón de archivos Quiero encontrar el tamaño promedio de estos archivos algo así como ls algo así ¿Cuál es el tamaño medio de archivo de todo?Unix encontrar tamaño promedio de archivo
Respuesta
he encontrado algo aquí:
http://vivekjain10.blogspot.com/2008/02/average-file-size-within-directory.html
para calcular el tamaño promedio de los archivos dentro de un directorio en un sistema Linux, siguiente comando se puede utilizar:
ls -l | gawk '{sum += $5; n++;} END {print sum/n;}'
Utilice wc -c *
para obtener el tamaño de todos los archivos y ls | wc -l
para obtener el número de archivos. Entonces solo divide uno por el otro.
nah Estaba buscando un comando como sugirió Ernstsson pero a cygwin no parece gustarle esa sintaxis :( – Tony
Un corto, general y recursion- la variación de la respuesta de usar Ernstsson 's:
find ./ -ls | awk '{sum += $7; n++;} END {print sum/n;}'
O, por ejemplo, si yo Desea impedir que los archivos de más de 100 KB se cuezan en el promedio:
find ./ -size -100000c -ls | awk '{sum += $7; n++;} END {print sum/n;}'
@ A-B-B, ¿qué quieres decir? Todo esto funciona, lo he estado usando muchas veces. Proporcione más detalles sobre el problema que está teniendo, porque no tengo idea de lo que está hablando. – cnst
@ A-B-B "Lanzado por el directorio actual, así como subdivisiones". - ¿Quiso decir que los directorios están incluidos en el cálculo del tamaño? Eso es muy intencional: la razón por la que escribí este script es para averiguar el tamaño promedio de archivos pequeños (y directorios) para determinar un buen bloque o tamaño de fragmento para 'mfs' (de lo contrario, usaría' -type f' con ['find'] (http://mdoc.su/o/find.1)). De ahí el ejemplo '-size', para dar cuenta de solo un par de archivos grandes. Tu -1 es muy inmerecido, y tus quejas de que no he probado esto son groseras, especialmente porque no hay nada de malo en la respuesta. – cnst
La razón por la que la está usando es interesante pero irrelevante. Si lo que quiero es el tamaño promedio del archivo, como se indica en la pregunta original, presumiblemente no quiero que los directorios afecten a este número, ¡punto! En cuanto al -1, no es solo para ti; la respuesta principal también lo consiguió. –
du -sh. # da el espacio total utilizado por el directorio
buscar. -type f | wc -l # contar el número de archivos
devide el primero por el segundo. Si quieres un chiste, aquí está:
echo $((`du -sb | tr '.' ' '`/`find . -type f | wc -l`))
FYI, esto utiliza du's '-b equivalente a' --aparente-tamaño --block-size = 1'' – Xen2050
Ellos están encontrando el tamaño de un directorio y encontrar la cantidad de espacio libre en disco que existe en su máquina. El comando que usaría para encontrar el tamaño del directorio es 'du'. Y para encontrar el espacio libre en el disco, podría usar 'df'.
Toda la información presente en este artículo está disponible en las páginas man para du y df. En caso de que te aburras al leer las páginas man y quieras hacer tu trabajo rápidamente, entonces este artículo es para ti.
-
'du' - Encontrar el tamaño de un directorio
$ du
Escribiendo lo anterior en el indicador le da una lista de directorios que existen en el directorio actual, junto con sus tamaños. La última línea del resultado le da el tamaño total del directorio actual, incluidos sus subdirectorios. El tamaño proporcionado incluye los tamaños de los archivos y los directorios que existen en el directorio actual, así como todos sus subdirectorios. Tenga en cuenta que, de forma predeterminada, los tamaños indicados están en kilobytes.
**$ du /home/david**
El comando anterior le daría el tamaño del directorio del directorio/home/David
**$ du -h**
Este comando le da un mejor rendimiento que el que viene por defecto. La opción '-h' significa formato legible para humanos. Entonces, los tamaños de los archivos/directorios tienen esta vez el sufijo con una 'k' si es kilobytes y 'M' si es Megabytes y 'G' si es Gigabytes.
**$ du -ah**
Este comando mostrará en su producción, no sólo los directorios sino también todos los archivos que están presentes en el directorio actual. Tenga en cuenta que 'du' siempre cuenta todos los archivos y directorios mientras da el tamaño final en la última línea. Pero la '-a' muestra los nombres de los archivos junto con los nombres de los directorios en la salida. '-h' es, una vez más, formato legible para humanos.
**$ du -c**
Esto le da un gran total como la última línea de la salida. Entonces, si su directorio ocupa 30 MB, las últimas 2 líneas de la salida serían
30M. 30M total
La primera línea sería la última línea predeterminada de la salida 'du' que indica el tamaño total del directorio y otra línea que muestra el mismo tamaño, seguida de la cadena 'total'. Esto es útil en caso de que este comando junto con el comando grep solo muestre el tamaño total final de un directorio como se muestra a continuación.
**$ du -ch | grep total**
Esto tendría sólo una línea en su salida que muestra el tamaño total del directorio actual, incluyendo todos los subdirectorios.
Nota: En caso de que no esté familiarizado con las tuberías (lo que hace posible el comando anterior) consulte el Artículo No. 24. También grep es uno de los comandos más importantes en Unix. Consulte el Artículo No. 25 para saber más sobre grep.
**$ du -s**
Aquí se muestra un resumen del tamaño del directorio. Es la forma más sencilla de conocer el tamaño total del directorio actual.
**$ du -S**
Esto mostraría el tamaño del directorio actual, excluyendo el tamaño de los subdirectorios que existen dentro de ese directorio. Por lo tanto, básicamente te muestra el tamaño total de todos los archivos que existen en el directorio actual.
**$ du --exculde=mp3**
El comando anterior mostraría el tamaño del directorio actual, junto con todos sus subdirectorios, pero sería excluir todos los archivos que tienen el patrón dado presente en sus nombres de archivo. Por lo tanto, en el caso anterior si sucede que hay archivos mp3 dentro del directorio actual o cualquiera de sus subdirectorios, su tamaño no se incluiría al calcular el tamaño total del directorio.
'df' - encontrar el uso de espacio libre en disco/disco
$ df
Escribiendo lo anterior, da salida a una tabla que consta de 6 columnas. Todas las columnas son muy fáciles de entender. Recuerde que las columnas 'Tamaño', 'Usado' y 'Disponibilidad' usan kilobytes como unidad. La columna 'Usar%' muestra el uso como un porcentaje que también es muy útil.
**$ df -h**
Muestra el mismo resultado que el comando anterior, pero el '-h' indica formato legible por humanos. Por lo tanto, en lugar de kilobytes como la unidad, la salida tendría 'M' para Megabytes y 'G' para Gigabytes.
La mayoría de los usuarios no utilizan los otros parámetros que se pueden pasar a 'df'. Entonces no los discutiré.
A su vez, mostraré un ejemplo que utilizo en mi máquina. De hecho, he almacenado esto como un script llamado 'uso' ya que lo uso a menudo.
Ejemplo:
tengo mi Linux instalado en/dev/hda1 y he montado mis particiones de Windows, así (por defecto cada vez que Linux arranque). Entonces 'df' me muestra de forma predeterminada el uso del disco de mi Linux así como de las particiones de Windows. Y solo me interesa el uso del disco de las particiones de Linux. Esto es lo que yo uso:
**$ df -h | grep /dev/hda1 | cut -c 41-43**
pantallas
Este comando lo siguiente en mi máquina
45%
Básicamente este comando hace 'df' mostrar los usos de disco de todas las particiones y luego se extrae la líneas con/dev/hda1 ya que solo estoy interesado en eso. Luego corta los caracteres de la columna 41 a la 43, ya que son las columnas que muestran el uso en%, que es lo que quiero.
Hay algunas opciones más que se pueden utilizar con 'du' y 'df'. Podrías encontrarlos en las páginas man.
- 1. Python: Encontrar promedio de una lista anidada
- 2. Consulta para encontrar un precio promedio ponderado
- 3. Interfaz REST para encontrar el promedio
- 4. Tamaño del proceso en UNIX
- 5. Buscar archivos con tamaño en Unix
- 6. Encontrar promedio móvil de puntos de datos en Python
- 7. Encontrar la combinación óptima de tamaño de archivo
- 8. Cómo encontrar el tamaño de un archivo HDFS
- 9. Encontrar la fecha promedio de la colección de fechas (Ruby)
- 10. ¿Cómo encontrar el promedio de un conjunto de cojinetes
- 11. ¿Cuál es un buen tamaño de método promedio?
- 12. ¿Cómo encontrar cd -exec en Linux/Unix
- 13. ¿Cómo crear un archivo de tamaño de más de 2 GB en Linux/Unix?
- 14. unix redirigir cola al archivo
- 15. ¿Encontrar valores mínimos, máximos y promedio para listas anidadas?
- 16. Tiempo promedio de ejecución
- 17. UNIX - recuento de columnas en el archivo
- 18. Nombre de archivo globbing Windows contra Unix
- 19. Archivo de cookies para Google Chrome/Unix
- 20. ¿Encontrar todos los archivos con cierta extensión en Unix?
- 21. Lea el archivo codificado UNIX con C#
- 22. promedio de Matemáticas con php
- 23. Directorio de Proc. Unix
- 24. expresión regular para los dígitos en Unix encontrar comando
- 25. Comando Unix para encontrar cadenas de intersecciones o valores atípicos?
- 26. Agrupación de matriz numpy 2D en promedio
- 27. Encontrar el tamaño de un empujón
- 28. promedio de varias columnas
- 29. Buscar el propietario de un archivo en Unix
- 30. Abrir un archivo en Unix usando C++
Probablemente relacionado con esta pregunta (la solución probablemente sea canalizar la salida de 'ls' en' awk' para hacer el promedio): http://stackoverflow.com/questions/2419690/average-and-maximum-size- of-directories – DNA
¿No es 'ls -l' enought? – sinsedrix
'código' ls -l 'código' realmente no es total o promedio. – Tony