Mi sistema de archivos Linux tiene decenas de miles de archivos por directorio. La visualización de una lista de todos los archivos toma unos minutos para que mi sistema los calcule, lo cual es demasiado lento. Pero no estoy seguro de qué archivos hay en cada directorio, así que quiero ver una lista de los primeros, como qué cabeza comando hace para archivos grandes. ¿Hay un comando que hace esto de manera eficiente?
Editar: Tubería ls para otra cosa no es bueno porque ls Tarda unos minutos en completarse, antes de canalizar la salida. Necesito un comando que solo devuelva los primeros registros.
Respuestas:
Tratar
ls -f
el cual no se ordenafuente
ls -f | sort | less
¡Es mucho más rápido también! Locura.Para cada uno de los directorios puede hacer lo siguiente mediante un script de shell
Prueba esto, esto da una página llena de entradas.
Incluso puede enviar esto a algún archivo si lo desea para poder consultarlo más adelante, para eso use este
Gracias
fuente
more
utilizado justo antes de una redirecciónless
utilízalo en lugar demore
Si quieres enumerar N primeras entradas, Simplemente crearía un pequeño programa en C que haga una llamada de opendir y luego N llame a readdir
fuente
Depende del sistema de archivos, pero generalmente es más rápido enumerar solo los nombres de archivo (mirar el objeto del directorio) en comparación con todos los metadatos del archivo (guarda una estadística por archivo).
Has probado
ls -R
?De lo contrario, podría pagarle ejecutar el programa de localización de GNU en segundo plano periódicamente y utilizar la base de datos generada para rastrearlo.
fuente
Puedes usar
head
:fuente