Estoy buscando una práctica línea para calcular el tamaño promedio de archivo en un directorio.
Lo que quiero es:
tamaño de todos los archivos / número de archivos en el directorio
bash
command-line
taffer
fuente
fuente

Respuestas:
Con FreeBSD / Mac OS X
find,statyawk(aunque no es exactamente una práctica):fuente
-v var=value,awkexpandirá las secuencias ANSI C como\n,\r... Mientras que los shells se exportanPWD, por lo que puede usarENVIRON["PWD"]en elawkque no tiene ese tipo de problema para los directorios que tienen barras invertidas en su nombre.find . -type f -exec stat -f%z {} +|awk '{s+=$0}END{print s/NR}'.Con GNU encuentra:
O para el uso del disco:
Tenga en cuenta que si hay varios enlaces duros del mismo archivo allí, eso contará su uso de disco varias veces.
Lo anterior solo cuenta archivos regulares, no enlaces simbólicos o directorios u otros archivos especiales. Incluye archivos ocultos.
Lo mismo con los
zshbuiltins:fuente
Una solución simplista en una línea:
Tiene un truco sintáctico, solo considerando
lslas líneas de salida que comienzan con '-', lo que debería constituir datos para archivos regulares.fuente
solo para archivos en un directorio, ignorando los subdirectorios:
O para contar todos los archivos, incluidos los archivos en subdirectorios:
fuente
du -sagregará el uso del disco (no el tamaño) de todos los archivos y directorios y otros archivos no regulares , excluyendo los enlaces duros adicionales al mismo archivo, mientrasfindcontará todos los archivos regulares. Además, los nombres de archivo con caracteres de nueva línea se contarán varias veces.du -Ses específico de GNU.du -sinformará sectores o kilobytes dependiendo del sistema operativo.