¿Cómo puedo obtener el tamaño de todos los archivos y todos los archivos en sus subdirectorios usando el comando du?
Estoy intentando el siguiente comando para obtener el tamaño de todos los archivos (y archivos en subdirectorios)
find . -type f | du -a
Pero esto también imprime los tamaños de carpeta. ¿Cómo puedo obtener una lista de tamaños de todos los archivos y archivos en subdirectorios? También probé el, exec flag
pero no estoy seguro de cómo canalizar la salida a otro comando después de que ejecute los resultados de find
into du
.
El sistema operativo es AIX 6.1 con ksh shell.
find -print0
u otras funciones de GNU. Si está disponible, reemplazar\;
con\+
dará como resultado menos invocacionesdu
y, por lo tanto, un mejor rendimiento.+
opción. ¿Es esa una opción paradu
o parafind
? ¿Y por qué resulta en menos llamadas?find
. Especificaexec
el comando (en nuestro casodu
) solo una vez, con todos los resultadosfind
dados como argumentos sucesivos del comando.du -f --threshold=1G
Si tiene utilidades GNU, intente
fuente
man du
no incluye unafiles
o unafrom
bandera.du -ch
para obtener un gran total de archivos coincidentes:find . -name 'blah blah.*' -print0 | du --files0-from=- -ch
Generalmente uso:
Xargs generalmente llama al comando, incluso si no se pasan argumentos;
xargs du </dev/null
aún se llamará,xargs -r du </dev/null
no llamará du. El-0
argumento busca cadenas terminadas en nulo en lugar de nuevas terminadas en línea.Luego, generalmente agrego
| awk '{sum+=$1} END {print sum}'
al final para obtener el total.fuente
then I usually add
valor del oro :-)Aquí hay una versión con nombres largos de parámetros y clasificación humana.
Tampoco vi la necesidad de
-a/--all
ser pasado adu
.fuente
archivos específicos en el directorio actual
du -ch files*
es más corto y me funciona
du -sh .
para el directorio actual y todos los archivos en sub
du (GNU coreutils) 8.30
fuente
du -ch files*
? Supongamos que el directorio actual contieneant
,apple
,banana
,bat
,cat
,corn
,date
, ydog
, donde los nombres de los animales son los subdirectorios y los nombres de vegetales / frutas son archivos - lo comando usaría para obtener sólo los archivos? ¿O no es eso lo que querías decir? (2)du -sh .
informará solo un gran total de todo en y bajo el directorio actual, y no los archivos en sí mismos. Esto es más o menos exactamente lo opuesto a la pregunta que se hizo.