Si no me equivoco, el shell representa la salida de lsen varias columnas, pero la salida lsse canaliza al siguiente comando con 1 archivo / directorio a la vez
Alex
ese parece ser el caso. Buena simplificación
Paul Rubel
3
Esto ignora el Total en la parte superior:ls -1t | head -n 6 | tail -n 5
Ryan
1
No veo un total, pero si hay uno que sin duda funcionaría.
Paul Rubel
18
La respuesta aceptada enumera solo los nombres de archivo, pero para obtener los 5 archivos principales también se puede usar:
ls -lht | head -6
dónde:
-l salidas en formato de lista
-h hace que la salida sea legible para humanos (es decir, los tamaños de archivo aparecen en kb, mb, etc.)
-t ordena la salida colocando primero el archivo modificado más recientemente
head -6mostrará 5 archivos porque lsimprime el tamaño del bloque en la primera línea de salida.
Creo que este es un enfoque un poco más elegante y posiblemente más útil.
Salida de ejemplo:
total 26960312
-rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py
-rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf
-rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf
-rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf
-rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
Esto le da a los 5 más viejos. Necesita invertir el sort ( ls -tr) o el uso en headlugar de tail, para obtener los 5 más nuevos.
Headbank
2
De forma predeterminada, ls -tordena la salida de la más nueva a la más antigua, por lo que la combinación de comandos a utilizar depende de en qué dirección desea que se ordene su salida.
Para los 5 archivos más nuevos ordenados del más nuevo al más antiguo, use headpara tomar las primeras 5 líneas de salida:
ls -t | head -n 5
Para los 5 archivos más nuevos ordenados del más antiguo al más nuevo, use el -rinterruptor para revertir lsel orden de clasificación y use tailpara tomar las últimas 5 líneas de salida:
ls -tlistar archivos por hora de creación, no por última vez modificada. Úselo ls -ltcsi desea enumerar los archivos por última vez modificada del último al primero (de arriba a abajo). Por lo tanto, para enumerar el último n:ls -ltc | head ${n}
¿A qué plataforma / versión te refieres? ¿Puedes proporcionar un enlace? Mirar la página de manual de Linux arroja lo contrario de lo que usted dice: -t sort by modification time, newest first
ls -lrtpodría ayudar a alguien.tharlya que tiende a tener todo lo que necesito.Respuestas:
Intenta usar cabeza o cola. Si desea los 5 archivos modificados más recientemente:
El -1 (que es uno) dice un archivo por línea y el encabezado dice que tome las primeras 5 entradas.
Si quieres los últimos 5 prueba
fuente
lsen varias columnas, pero la salidalsse canaliza al siguiente comando con 1 archivo / directorio a la vezls -1t | head -n 6 | tail -n 5La respuesta aceptada enumera solo los nombres de archivo, pero para obtener los 5 archivos principales también se puede usar:
ls -lht | head -6dónde:
-lsalidas en formato de lista-hhace que la salida sea legible para humanos (es decir, los tamaños de archivo aparecen en kb, mb, etc.)-tordena la salida colocando primero el archivo modificado más recientementehead -6mostrará 5 archivos porquelsimprime el tamaño del bloque en la primera línea de salida.Creo que este es un enfoque un poco más elegante y posiblemente más útil.
Salida de ejemplo:
total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmvfuente
Use el
tailcomando:fuente
ls -tr) o el uso enheadlugar detail, para obtener los 5 más nuevos.De forma predeterminada,
ls -tordena la salida de la más nueva a la más antigua, por lo que la combinación de comandos a utilizar depende de en qué dirección desea que se ordene su salida.Para los 5 archivos más nuevos ordenados del más nuevo al más antiguo, use
headpara tomar las primeras 5 líneas de salida:Para los 5 archivos más nuevos ordenados del más antiguo al más nuevo, use el
-rinterruptor para revertirlsel orden de clasificación y usetailpara tomar las últimas 5 líneas de salida:fuente
ls -tlistar archivos por hora de creación, no por última vez modificada. Úselols -ltcsi desea enumerar los archivos por última vez modificada del último al primero (de arriba a abajo). Por lo tanto, para enumerar el último n:ls -ltc | head ${n}fuente
-t sort by modification time, newest first