sort
no proporciona salida hasta que se hayan ordenado todos los elementos. No puede retroceder en la salida y los elementos nuevos, así es como es. En mis pruebas, GNU sort
se activa tan pronto como obtiene suficiente salida para comenzar con sus algoritmos de clasificación, pero detiene la salida hasta que todo se haya ordenado, por lo que tanto sort
como find
estuvieron activos durante el mismo período de tiempo (aunque find
estuvo activo antes, y sort
permaneció activo más tarde, hubo superposición ).
La forma más rápida que se me ocurre de usar find
es evitar otros comandos y procesamiento de texto tanto como sea posible. Por lo tanto, imprima el tamaño y el nombre usando find
en lugar de ejecutar ls
varias veces.Usando GNU find (y asumiendo nombres de archivo sin saltos de línea):
find /opt/app -xdev -type f -printf "%s %p\n" | sort -k1,1n | head
O puede ejecutar múltiples find
s en paralelo:
(for d in /opt/app/*/; do find "$d" -xdev -type f -printf "%s %p\n" & done; wait) | sort -k1,1n | head
(esto podría resultar perjudicial debido al intercalado de salida)
Pero no obtendrá ningún resultado hasta que sort
haya hecho su trabajo.