
una llanura ls -l Los archivos se enumeran alfabéticamente, por lo que los archivos que se modificaron hace cinco minutos se pierden en un directorio largo. Aquí se explica cómo ordenar por modificación, acceso, cambio y hora de nacimiento. ls -t, -r, -u, -cy find.
Enumerar el contenido de un directorio es una de las primeras cosas que hace en cualquier directorio. linux servidor, y la mayoría de las veces ls es el comando que desea ejecutar.
Pero por defecto, ls Ordena la salida alfabéticamente por nombre de archivo, esto está bien para directorios de inicio pequeños, pero no es tan útil cuando está activado /etc o /var/log y me pregunto qué ha cambiado recientemente.
Esto ocurre a menudo en el trabajo real de gestión del sistema. El servicio dejó de funcionar después de una actualización del paquete y desea saber qué perfiles se acaban de tocar. La tarea de copia de seguridad se ejecuta todas las noches y el script debe seleccionar el archivo más reciente. El directorio de registro contiene cientos de archivos rotativos y a usted solo le importan los archivos en los que está escribiendo actualmente.
este ls comando La salida se puede ordenar por tiempo usando un solo indicador y se puede ordenar por varias marcas de tiempo diferentes, no solo por la hora de la última modificación. Una vez que sepa qué marca de tiempo se utiliza para cada indicador, encontrar el archivo más nuevo o más antiguo en cualquier directorio solo le llevará unos segundos.
Cómo realizar un seguimiento de las marcas de tiempo de los archivos en Linux
Antes de ordenar por hora, es útil saber qué horas linux en realidad almacena un archivo porque cada ls Al ordenar banderas se leen diferentes banderas, y elegir la bandera incorrecta le dará un orden aparentemente aleatorio.
Cada archivo tiene estas marcas de tiempo, almacenadas en su inodo (el pequeño registro en el disco que contiene los metadatos del archivo):
mtime(tiempo de modificación) cambia cuando cambia el contenido del archivo. es horals -lPantalla predeterminada.atime(tiempo de acceso) cambia a medida que se lee el archivo, aunque la mayoría de los sistemas sólo lo actualizan ocasionalmente, como se explica a continuación.ctime(hora de cambio) Cambia cuando cambian los metadatos del archivo (como sus permisos, propietario o nombre) y cuando cambia su contenido. Este no es el tiempo de la creación, lo cual es una confusión común.btime(Hora de nacimiento) Registra la hora en que se creó el archivo en los sistemas de archivos compatibles (como ext4, XFS y Btrfs).
La forma más sencilla de ver los cuatro al mismo tiempo es Comandos de estadísticasasí que ejecutémoslo /etc/hosts:
stat /etc/hosts
producción:
File: /etc/hosts Size: 268 Blocks: 8 IO Block: 4096 regular file Device: 252,1 Inode: 1310834 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-11-02 08:55:10.412367219 +0530 Modify: 2026-10-28 14:03:22.180415667 +0530 Change: 2026-10-28 14:03:22.180415667 +0530 Birth: 2026-09-14 11:20:47.904112031 +0530
El tamaño, los números de inodo y las líneas de dispositivo diferirán en su sistema, así que concéntrese en las cuatro líneas de tiempo inferiores. si Birth Mostrar guión (-), su sistema de archivos o kernel no informará la hora de creación del archivo.
Los tiempos de acceso requieren atención adicional. La mayoría de las distribuciones de Linux montan sistemas de archivos de forma predeterminada con la opción relatime, lo que significa que el kernel solo se actualiza cada vez si la hora de acceso anterior es anterior a la hora de modificación o cambio del archivo, o tiene más de 24 horas. Esto ahorra escrituras en el disco en cada lectura, pero también significa que leer un archivo dos veces en la misma tarde no lo moverá a la parte superior de la lista de tiempos de acceso.
Si esto finalmente elimina la diferencia entre mtime y ctime Para ti, compártelo con los que todavía piensan. ctime Indica el tiempo de creación.
Leer columnas de fecha y hora de la salida ls -l
Ahora que sabes qué marcas de tiempo, veamos dónde ls Se muestran porque cada uno de los ejemplos de clasificación siguientes depende de la lectura correcta de esta columna.
este -l Las opciones se proporcionan en formato de lista larga, incluidos permisos, número de enlaces, propietario, grupo, tamaño, hora de modificación y nombre:
ls -l /etc/nginx
producción:
total 68 drwxr-xr-x 2 root root 4096 Feb 9 2026 conf.d -rw-r--r-- 1 root root 1125 Dec 1 2023 fastcgi.conf -rw-r--r-- 1 root root 1055 Dec 1 2023 fastcgi_params -rw-r--r-- 1 root root 2837 Dec 1 2023 koi-utf -rw-r--r-- 1 root root 2223 Dec 1 2023 koi-win -rw-r--r-- 1 root root 5465 Dec 1 2023 mime.types drwxr-xr-x 2 root root 4096 Feb 9 2026 modules-available drwxr-xr-x 2 root root 4096 Feb 9 2026 modules-enabled -rw-r--r-- 1 root root 1446 Dec 1 2023 nginx.conf -rw-r--r-- 1 root root 180 Dec 1 2023 proxy_params -rw-r--r-- 1 root root 636 Dec 1 2023 scgi_params drwxr-xr-x 2 root root 4096 Sep 23 12:13 sites-available drwxr-xr-x 2 root root 4096 Apr 19 2026 sites-enabled drwxr-xr-x 2 root root 4096 Sep 23 12:13 snippets -rw-r--r-- 1 root root 664 Dec 1 2023 uwsgi_params -rw-r--r-- 1 root root 3071 Dec 1 2023 win-utf
Tenga en cuenta que algunas líneas muestran la hora, p. 12:13mientras que algunos muestran el año, como 2026. ÑU ls Muestra la hora de los archivos modificados en los últimos seis meses y cambia al año de los archivos más antiguos, por lo que Dec 01 2023 Simplemente significa que el archivo es lo suficientemente antiguo como para que falte la hora exacta. Veremos cómo mostrar siempre la marca de tiempo completa en el Ejemplo 3.
Ejemplo práctico de clasificación de la salida de ls por tiempo
Teniendo en cuenta las columnas de marca de tiempo y fecha, podemos comenzar a ordenar. Los siguientes ejemplos se basan entre sí y están extraídos de la vida diaria. ls -lt Ordena todo el árbol de directorios.
Ejemplo 1: use ls -lt para ordenar archivos por hora de modificación
este -t las opciones dicen ls Ordenar por hora, la última primero, la hora de modificación predeterminada. combinar -lque es la forma más rápida de ver los cambios recientes en un directorio, p. /etcque es donde te ocupas después de que una actualización o un cambio de configuración salga mal.
desde /etc Guarde cientos de entradas y canalice la salida al encabezado para que solo se muestren las primeras líneas:
ls -lt /etc | head -n 6
producción:
total 1092 -rw-r--r-- 1 root root 95381 Nov 2 09:12 ld.so.cache drwxr-xr-x 3 root root 4096 Nov 2 09:11 nginx drwxr-xr-x 2 root root 4096 Nov 2 09:11 alternatives -rw-r----- 1 root shadow 1302 Nov 1 18:40 shadow -rw-r--r-- 1 root root 2914 Nov 1 18:40 passwd
La primera línea, totales el espacio en disco utilizado por los archivos enumerados en bloques de 1K, por lo que head -n 6 Se le proporciona la fila más las cinco últimas entradas. En este ejemplo puedes ver que algo en el directorio nginx ha cambiado 09:11y la contraseña y la sombra se cambiaron la noche anterior, lo que generalmente significa que se agregó o modificó la cuenta de usuario.
También puedes escribir el mismo tipo usando una forma más larga y legible. --sort=timelo cual es conveniente en scripts que otros leerán:
ls -l --sort=time /etc | head -n 6
Ejemplo 2: use ls -ltr para enumerar los archivos más recientes al final
El primer ejemplo coloca los archivos más nuevos en la parte superior, lo que funciona bien con el encabezado, pero en un directorio con cientos de archivos, la parte superior de la salida se desplazará fuera de la pantalla. añadir -r Invierta el orden para que los archivos más nuevos terminen en la parte inferior, justo encima del mensaje, y pueda leerlos sin tener que desplazarse.
Esta es probablemente la forma de comando más utilizada en el servidor, especialmente en el directorio de registro:
ls -ltr /var/log
producción:
... -rw-r----- 1 syslog adm 184322 Nov 2 08:30 auth.log.1 drwxr-xr-x 2 root root 4096 Nov 2 09:05 nginx -rw-r----- 1 syslog adm 48210 Nov 2 09:18 auth.log -rw-r----- 1 syslog adm 912644 Nov 2 09:20 syslog
Las últimas líneas muestran el archivo en el que se está escribiendo actualmente, lo que le indica qué registro abrir primero al solucionar un problema inmediato.
si ls -ltr Simplemente le evita tener que desplazarse por un directorio de registro largo y compartirlo con sus compañeros de equipo, quienes seguirán abriendo cada archivo de registro uno por uno.
Ejemplo 3: utilice –full-time para mostrar la fecha y hora completas
Antes vimos ls -l Oculta la hora de archivos antiguos y nunca muestres segundos. Esto no es lo suficientemente preciso cuando dos archivos cambian en el mismo minuto o cuando necesita hacer coincidir los archivos con las marcas de tiempo en los registros.
este --full-time La opción soluciona este problema imprimiendo la fecha completa, la hora en nanosegundos y el desplazamiento de la zona horaria, y es compatible con -t:
ls -lt --full-time /etc/nginx
producción:
total 64 -rw-r--r-- 1 root root 1477 2026-11-02 09:11:37.551209183 +0530 nginx.conf drwxr-xr-x 2 root root 4096 2026-10-28 14:10:02.118540871 +0530 conf.d drwxr-xr-x 2 root root 4096 2026-10-28 14:10:02.118540871 +0530 sites-available drwxr-xr-x 2 root root 4096 2026-10-28 14:10:02.118540871 +0530 sites-enabled -rw-r--r-- 1 root root 1125 2026-04-14 10:02:18.000000000 +0530 fastcgi.conf -rw-r--r-- 1 root root 1055 2026-04-14 10:02:18.000000000 +0530 fastcgi_params
Los archivos de paquetes a menudo muestran .000000000 Porque el tiempo almacenado en el paquete solo puede tener una precisión de segundos. Si la marca de tiempo completa de nanosegundos supera sus necesidades, --time-style Le permite elegir un formato más corto, como long-iso, que proporciona fechas y horas ordenables sin segundos:
ls -lt --time-style=long-iso /etc/nginx
producción:
total 64 -rw-r--r-- 1 root root 1477 2026-11-02 09:11 nginx.conf drwxr-xr-x 2 root root 4096 2026-10-28 14:10 conf.d
Ejemplo 4: Ordenar por visita, cambio o hora de nacimiento
Hasta ahora, cada ejemplo se ha ordenado por hora de modificación. Otras marcas de tiempo que encontramos al usar stat también son útiles, por ejemplo, cuando desea saber qué scripts en un directorio se ejecutaron realmente recientemente o qué archivos cambiaron sus permisos.
Combina estas opciones con -l y -t:
-uMostrar hora de acceso en lugar de hora de modificación y ordenar por hora de acceso-tTambién dado. en sí mismo-lmuestra el tiempo de acceso pero aún se ordena por nombre, así que recuerda agregar-t.-cCambiar la hora funciona de la misma manera (ctime), lo cual es útil después de un chmod o chown que no ha tocado el contenido del archivo.--time=birthOrdene por tiempo de compilación y muestre el tiempo de compilación del sistema de archivos y el informe central.
Por ejemplo, vea qué scripts /usr/local/bin Contenido leído recientemente, ordenado por tiempo de acceso:
ls -ltu /usr/local/bin
Para buscar archivos en la raíz web cuyos permisos o propiedad hayan cambiado recientemente, ordénelos por hora de cambio:
ls -ltc /var/www/html
porque relatime El comportamiento explicado anteriormente trata el orden del tiempo de acceso como una guía aproximada en lugar de un registro preciso de cada lectura.
Ejemplo 5: obtener el archivo o directorio más reciente en el script
Hasta ahora, los ejemplos se han leído en una pantalla, pero el orden cronológico también puede resultar útil en los guiones. Una situación común es un directorio de respaldo donde un trabajo nocturno escribe nuevos archivos y otro script solo necesita copiar o verificar el último archivo.
desde -t Primero ordene el último y obtenga la primera línea del resultado para obtener el archivo más reciente:
latest=$(ls -t /srv/backups/*.tar.gz | head -n 1) echo "Latest backup: $latest"
producción:
Latest backup: /srv/backups/web-2026-11-02.tar.gz
La misma idea se aplica a los directorios. este -d las opciones dicen ls enumerar el directorio en sí en lugar de su contenido, y */ pattern Solo coinciden los directorios, por lo que esto muestra las carpetas de proyectos modificadas más recientemente:
ls -ltd /srv/projects/*/
Recuerde, solo es seguro analizar la salida de ls si el nombre del archivo comprimido está bajo su control, como el nombre de la copia de seguridad con fecha anterior. Los nombres de los archivos comprimidos que contienen nuevas líneas pueden dañar los resultados, por lo que el siguiente ejemplo utiliza buscar si no puede determinar el nombre.
Ejemplo 6: use buscar para ordenar archivos en un subdirectorio por tiempo
Hasta ahora, cada ejemplo ha ordenado archivos en un directorio. si lo intentas ls -ltR En el árbol de directorios, ls Cada subdirectorio todavía está ordenado individualmente, por lo que no puede ver qué archivo en todo el árbol se modificó por última vez.
Para tal fin, encontrar comando es la herramienta adecuada porque -printf Opción para imprimir la hora de modificación de cada archivo en un formato ordenable. este %T+ El comando imprime la hora como YYYY-MM-DD+HH:MM:SSque se ordena correctamente como texto sin formato, y %p Ruta de impresión:
sudo find /var/log -type f -printf '%T+ %p\n' | sort -r | head -n 5
producción:
2026-11-02+09:20:14.5521378870 /var/log/syslog 2026-11-02+09:20:14.1189022310 /var/log/journal/8f3c2a.../system.journal 2026-11-02+09:18:41.7703315260 /var/log/auth.log 2026-11-02+09:05:12.3341908870 /var/log/nginx/access.log 2026-11-02+08:30:00.9921045310 /var/log/nginx/error.log
usamos sudo Esto se debe a que varios directorios de registro solo pueden ser leídos por el grupo raíz o administrador sin él. find imprimir Permission denied para estos directorios y omítelos. clasificar -r Coloque primero el archivo más nuevo y luego diríjase -n 5 Mantenga los cinco más cercanos en todo el árbol.
Si solo necesita los archivos que cambiaron en la ventana más reciente en lugar de la lista ordenada completa, busque /etc -type f -mmin -60 Enumere cada archivo a continuación /etc Modificado en los últimos 60 minutos, que suele ser la forma más rápida de responder «¿Qué acaba de cambiar en la actualización?»
Si esta combinación de búsqueda y clasificación le ayuda a realizar un seguimiento de los cambios recientes en todo su árbol de directorios, compártala con cualquiera que todavía esté ejecutando ls -ltR y pergaminos.
Consejos para ordenar por hora del día usando ls
Ahora que puede ordenar por cualquier marca de tiempo, algunos pequeños hábitos pueden hacer que estos comandos sean más rápidos de usar y evitar resultados confusos.
si entras ls -ltr Varias veces al día, agregue un alias corto a su cuenta ~/.bashrc Por eso siempre está disponible. extra -h La bandera imprime el tamaño, p.e. 1,2 M, en lugar del número bruto de bytes, lo que hace que la lista sea más fácil de escanear:
echo "alias lt="ls -ltrh"" >> ~/.bashrc source ~/.bashrc
Cuando compare horas en diferentes servidores, recuerde que ls muestra la hora en la zona horaria local del servidor. Si un servidor se ejecuta en UTC y otro servidor se ejecuta en IST, el mismo tiempo tendrá una diferencia de cinco horas y media. Al configurar la variable TZ para un solo comando se muestra la hora UTC para que pueda compararlas directamente:
TZ=UTC ls -lt --full-time /etc/nginx
Las versiones recientes de Ubuntu tienen uutils coreutils basados en Rust como predeterminados lsa pesar de LokiLinux, AlmaLinuxy RHEL Utilice las herramientas básicas de GNU.
Las opciones de este artículo se comportan de la misma manera en la clasificación diaria, pero algunos pequeños detalles (como el espaciado exacto de la salida) pueden diferir, así que verifique la salida en su propio sistema antes de confiar en ella en su script.
Finalmente, si el archivo que acaba de copiar muestra una hora de modificación anterior, esto es normal. Comandos como cp -p, rsync -ay tar Fetch conserva intencionalmente la hora de modificación original, por lo que los archivos se ordenan por la última vez que se modificó su contenido, no por la hora en que llegaron al servidor.
Por otro lado, su ctime mostrará el tiempo de copia, que es otro caso. ls -ltc Dándote las respuestas que buscas.
en conclusión
Ahora puede ordenar cualquier listado de directorio por modificación, acceso, cambio o hora de nacimiento usando ls -t y -u, -co --timeinvertir el orden -re imprimir la marca de tiempo exacta --full-time.
Para todo el árbol de directorios, find y -printf '%T+ %p\n' y sort Muestra inmediatamente los archivos más recientes en cada subdirectorio.
Si desea familiarizarse con el resto de la línea de comando diaria, nuestro Más de 100 cursos de instrucción básica de Linux existir ProfesionalTecmint cubrir ls, find, sort, staty más con ejemplos prácticos.
Cuando esté listo para convertir frases ingeniosas como el ejemplo de copia de seguridad en scripts confiables, Bash Scripts for Beginners lo guiará paso a paso.
Nos encantaría saber cómo ordenas por tiempo en tu servidor. ¿Eres dependiente? ls -ltr¿O ha recurrido a la mayoría de esos trabajos?
¿Alguna vez te has confundido con relatime o ctime, que no significa tiempo de creación? No dudes en compartir tus alias favoritos o publicar una lista confusa en los comentarios y te ayudaremos a leerla.










