Generalmente, tenemos la costumbre de guardar mucha información en forma de archivos en nuestro sistema. Algunos archivos están ocultos, otros se mantienen en una carpeta separada creada para nuestra comodidad de comprensión, mientras que algunos permanecen tal cual. Pero, todo este material llena nuestros directorios, generalmente el escritorio, haciéndolo ver como un desorden. Pero, el problema surge cuando necesitamos buscar un archivo en particular modificado en una fecha y hora específicas en esta enorme colección.

Las personas cómodas con las interfaces gráficas de usuario pueden encontrarlo usando el Administrador de archivos, que lista los archivos en formato de lista larga, facilitando la identificación de lo que queremos, pero aquellos usuarios que tienen la costumbre de las pantallas negras, o incluso cualquiera que trabaje en servidores que carecen de interfaces gráficas de usuario, desearían un comando simple o un conjunto de comandos que pudieran facilitar su búsqueda.
La verdadera belleza de Linux se muestra aquí, ya que Linux tiene una colección de comandos que, si se usan por separado o juntos, pueden ayudar a buscar un archivo, o clasificar una colección de archivos según su nombre, fecha de modificación, hora de creación, o incluso cualquier filtro que puedas pensar en aplicar para obtener tu resultado.
Aquí, revelaremos la verdadera fuerza de Linux examinando un conjunto de comandos que pueden ayudar a clasificar un archivo o incluso una lista de archivos por Fecha y Hora.
Utilidades de Linux para Clasificar Archivos en Linux
Algunas utilidades básicas de línea de comandos de Linux que son suficientes para clasificar un directorio según la Fecha y la Hora son:
el comando ls
ls – La utilidad de listar contenido de directorio, esta herramienta puede listar los archivos y directorios e incluso puede listar toda la información de estado sobre ellos incluyendo: fecha y hora de modificación o acceso, permisos, tamaño, propietario, grupo, etc.
Ya hemos cubierto muchos artículos sobre el comando ls de Linux y el comando sort, puedes encontrarlos a continuación:
- Aprende el comando ls con 15 ejemplos básicos
- Aprende 7 comandos avanzados de ls con ejemplos
- 15 preguntas útiles de entrevista sobre el comando ls en Linux
sort
sort – Este comando puede ser usado para ordenar la salida de cualquier búsqueda por cualquier campo o cualquier columna particular del campo.
Ya hemos cubierto dos artículos sobre el comando sort de Linux, puedes encontrarlos a continuación:
- 14 ejemplos del comando ‘sort’ en Linux – Parte 1
- 7 ejemplos útiles del comando ‘sort’ en Linux – Parte 2
Estos comandos son en sí mismos comandos muy poderosos para dominar si trabajas en pantallas negras y tienes que lidiar con muchos archivos, solo para obtener el que deseas.
Algunas formas de ordenar archivos por fecha y hora
A continuación se muestra la lista de comandos para ordenar según la fecha y la hora.
1. Listar archivos basados en el tiempo de modificación
El siguiente comando lista archivos en formato de lista larga y ordena los archivos según el tiempo de modificación, el más nuevo primero. Para ordenar en orden inverso, usa el interruptor '-r'
con este comando.
# ls -lt total 673768 -rwxr----- 1 tecmint tecmint 3312130 Jan 19 15:24 When You Are Gone.MP3 -rwxr----- 1 tecmint tecmint 4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony-1.mp3 -rwxr----- 1 tecmint tecmint 4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony.mp3 -rwxr----- 1 tecmint tecmint 6629090 Jan 19 15:24 Westlife_Tonight.MP3 -rwxr----- 1 tecmint tecmint 3448832 Jan 19 15:24 We Are The World by USA For Africa (Michael Jackson).mp3 -rwxr----- 1 tecmint tecmint 8580934 Jan 19 15:24 This Love.mp3 -rwxr----- 1 tecmint tecmint 2194832 Jan 19 15:24 The Cross Of Changes.mp3 -rwxr----- 1 tecmint tecmint 5087527 Jan 19 15:24 T.N.T. For The Brain 5.18.mp3 -rwxr----- 1 tecmint tecmint 3437100 Jan 19 15:24 Summer Of '69.MP3 -rwxr----- 1 tecmint tecmint 4360278 Jan 19 15:24 Smell Of Desire.4.32.mp3 -rwxr----- 1 tecmint tecmint 4582632 Jan 19 15:24 Silence Must Be Heard 4.46.mp3 -rwxr----- 1 tecmint tecmint 4147119 Jan 19 15:24 Shadows In Silence 4.19.mp3 -rwxr----- 1 tecmint tecmint 4189654 Jan 19 15:24 Sarah Brightman & Enigma - Eden (remix).mp3 -rwxr----- 1 tecmint tecmint 4124421 Jan 19 15:24 Sade - Smooth Operator.mp3 -rwxr----- 1 tecmint tecmint 4771840 Jan 19 15:24 Sade - And I Miss You.mp3 -rwxr----- 1 tecmint tecmint 3749477 Jan 19 15:24 Run To You.MP3 -rwxr----- 1 tecmint tecmint 7573679 Jan 19 15:24 Roger Sanchez_Another Chance_Full_Mix.mp3 -rwxr----- 1 tecmint tecmint 3018211 Jan 19 15:24 Principal Of Lust.3.08.mp3 -rwxr----- 1 tecmint tecmint 5688390 Jan 19 15:24 Please Forgive Me.MP3 -rwxr----- 1 tecmint tecmint 3381827 Jan 19 15:24 Obvious.mp3 -rwxr----- 1 tecmint tecmint 5499073 Jan 19 15:24 Namstey-London-Viraaniya.mp3 -rwxr----- 1 tecmint tecmint 3129210 Jan 19 15:24 MOS-Enya - Only Time (Pop Radio mix).m
2. Listar archivos basados en el tiempo de último acceso
Listado de archivos en el directorio basado en el tiempo de último acceso, es decir, basado en el tiempo en que se accedió por última vez al archivo, no modificado.
# ls -ltu total 3084272 drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:24 Music drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Linux-ISO drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Music-Player drwx------ 3 tecmint tecmint 4096 Jan 19 15:22 tor-browser_en-US drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 bin drwxr-xr-x 11 tecmint tecmint 4096 Jan 19 15:22 Android Games drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Songs drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 renamefiles drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 katoolin-master drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Tricks drwxr-xr-x 3 tecmint tecmint 4096 Jan 19 15:22 Linux-Tricks drwxr-xr-x 6 tecmint tecmint 4096 Jan 19 15:22 tuptime drwxr-xr-x 4 tecmint tecmint 4096 Jan 19 15:22 xdm drwxr-xr-x 2 tecmint tecmint 20480 Jan 19 15:22 ffmpeg usage drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 xdm-helper
3. Listar archivos basados en el tiempo de última modificación
Listado de archivos en el directorio basado en el tiempo de última modificación de la información de estado del archivo, o el 'ctime'
. Este comando listaría primero el archivo cuya información de estado como: propietario, grupo, permisos, tamaño, etc. ha sido cambiada recientemente.
# ls -ltc total 3084272 drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:24 Music drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 13:05 img -rw------- 1 tecmint tecmint 262191 Jan 19 12:15 tecmint.jpeg drwxr-xr-x 5 tecmint tecmint 4096 Jan 19 10:57 Desktop drwxr-xr-x 7 tecmint tecmint 12288 Jan 18 16:00 Downloads drwxr-xr-x 13 tecmint tecmint 4096 Jan 18 15:36 VirtualBox VMs -rwxr-xr-x 1 tecmint tecmint 691 Jan 13 14:57 special.sh -rw-r--r-- 1 tecmint tecmint 654325 Jan 4 16:55 powertop-2.7.tar.gz.save -rw-r--r-- 1 tecmint tecmint 654329 Jan 4 11:17 filename.tar.gz drwxr-xr-x 3 tecmint tecmint 4096 Jan 4 11:04 powertop-2.7 -rw-r--r-- 1 tecmint tecmint 447795 Dec 31 14:22 Happy-New-Year-2016.jpg -rw-r--r-- 1 tecmint tecmint 12 Dec 18 18:46 ravi -rw-r--r-- 1 tecmint tecmint 1823 Dec 16 12:45 setuid.txt ...
Si se utiliza el interruptor '-a'
con los comandos anteriores, pueden listar y ordenar incluso los archivos ocultos en el directorio actual, y el interruptor '-r'
lista la salida en orden inverso.
Para una clasificación más profunda, como la clasificación en Salida del comando find, sin embargo, también se puede usar ls
, pero allí 'sort'
resulta más útil ya que la salida puede no tener solo el nombre del archivo, sino cualquier campo deseado por el usuario.
Los siguientes comandos muestran el uso de sort
con el comando find
para ordenar la lista de archivos según la fecha y la hora.
Para obtener más información sobre el comando find, sigue este enlace: 35 Practical Examples of ‘find’ Command in Linux
4. Ordenar archivos según el mes
Aquí, utilizamos el comando find
para buscar todos los archivos en el directorio raíz (‘/’)
y luego imprimir el resultado como: mes en que se accedió el archivo y luego el nombre del archivo. De ese resultado completo, aquí listamos las primeras 11 entradas.
# find / -type f -printf "\n%Ab %p" | head -n 11 Dec /usr/lib/nvidia/pre-install Dec /usr/lib/libcpufreq.so.0.0.0 Apr /usr/lib/libchromeXvMCPro.so.1.0.0 Apr /usr/lib/libt1.so.5.1.2 Apr /usr/lib/libchromeXvMC.so.1.0.0 Apr /usr/lib/libcdr-0.0.so.0.0.15 Dec /usr/lib/msttcorefonts/update-ms-fonts Nov /usr/lib/ldscripts/elf32_x86_64.xr Nov /usr/lib/ldscripts/elf_i386.xbn Nov /usr/lib/ldscripts/i386linux.xn
El siguiente comando ordena la salida utilizando la clave como primer campo, especificado por '-k1'
y luego ordena por mes como se especifica por 'M'
antes de él.
# find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M Apr /usr/lib/libcdr-0.0.so.0.0.15 Apr /usr/lib/libchromeXvMCPro.so.1.0.0 Apr /usr/lib/libchromeXvMC.so.1.0.0 Apr /usr/lib/libt1.so.5.1.2 Nov /usr/lib/ldscripts/elf32_x86_64.xr Nov /usr/lib/ldscripts/elf_i386.xbn Nov /usr/lib/ldscripts/i386linux.xn Dec /usr/lib/libcpufreq.so.0.0.0 Dec /usr/lib/msttcorefonts/update-ms-fonts Dec /usr/lib/nvidia/pre-install
5. Ordenar archivos según la fecha
Aquí, nuevamente utilizamos el comando find
para buscar todos los archivos en el directorio raíz, pero ahora imprimiremos el resultado como: última fecha en que se accedió el archivo, última hora en que se accedió el archivo y luego el nombre del archivo. De eso, tomamos las primeras 11 entradas.
# find / -type f -printf "\n%AD %AT %p" | head -n 11 12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install 12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0 04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
El siguiente comando de ordenamiento primero ordena según el último dígito del año, luego ordena según el último dígito del mes en orden inverso y finalmente ordena según el primer campo. Aquí, ‘1.8‘ significa la octava columna del primer campo y ‘n’ antes de él significa orden numérico, mientras que ‘r’ indica orden inverso.
# find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1 12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install 12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn 04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
6. Ordenar archivos según la hora
Aquí, nuevamente usamos el comando find
para listar los 11 archivos principales en el directorio raíz e imprimir el resultado en el formato: última vez que se accedió al archivo y luego el nombre del archivo.
# find / -type f -printf "\n%AT %p" | head -n 11 11:30:38.0000000000 /usr/lib/nvidia/pre-install 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
El siguiente comando ordena la salida basada en la primera columna del primer campo de la salida, que es el primer dígito de la hora.
# find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 11:30:38.0000000000 /usr/lib/nvidia/pre-install 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
7. Ordenando la salida de ls -l basada en la fecha
Este comando ordena la salida del comando 'ls -l'
basado en el sexto campo por mes, luego basado en el séptimo campo que es la fecha, numéricamente.
# ls -l | sort -k6M -k7n total 116 -rw-r--r-- 1 root root 0 Oct 1 19:51 backup.tgz drwxr-xr-x 2 root root 4096 Oct 7 15:27 Desktop -rw-r--r-- 1 root root 15853 Oct 7 15:19 powertop_report.csv -rw-r--r-- 1 root root 79112 Oct 7 15:25 powertop.html -rw-r--r-- 1 root root 0 Oct 16 15:26 file3 -rw-r--r-- 1 root root 13 Oct 16 15:17 B -rw-r--r-- 1 root root 21 Oct 16 15:16 A -rw-r--r-- 1 root root 64 Oct 16 15:38 C
Conclusión
De igual manera, teniendo algún conocimiento del comando sort, puedes ordenar casi cualquier lista basada en cualquier campo e incluso en cualquier columna que desees. Estos fueron algunos trucos para ayudarte a ordenar archivos basados en la Fecha o la Hora. Puedes crear tus propios trucos basados en estos. Sin embargo, si tienes algún otro truco interesante, siempre puedes mencionarlo en tus comentarios.
Source:
https://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/