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 -lrt
podría ayudar a alguien.tharl
ya 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
ls
en varias columnas, pero la salidals
se canaliza al siguiente comando con 1 archivo / directorio a la vezls -1t | head -n 6 | tail -n 5
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 recientementehead -6
mostrará 5 archivos porquels
imprime 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
fuente
Use el
tail
comando:fuente
ls -tr
) o el uso enhead
lugar detail
, para obtener los 5 más nuevos.De forma predeterminada,
ls -t
ordena 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
head
para 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
-r
interruptor para revertirls
el orden de clasificación y usetail
para tomar las últimas 5 líneas de salida:fuente
ls -t
listar archivos por hora de creación, no por última vez modificada. Úselols -ltc
si 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