Búsqueda de sitios web

Cómo buscar y ordenar archivos según la fecha y hora de modificación en Linux


Por lo general, tenemos la costumbre de guardar mucha información en forma de archivos en nuestro sistema. Algunos son archivos ocultos, otros se guardan en una carpeta separada creada para nuestra facilidad de comprensión, mientras que otros tal como están. Pero todo este asunto llena nuestros directorios; generalmente de escritorio, lo que lo hace parecer un desastre. Pero el problema surge cuando necesitamos buscar un archivo en particular modificado en una fecha y hora determinadas en esta enorme colección.

Las personas que se sienten cómodas con las GUI pueden encontrarlo usando el Administrador de archivos, que enumera los archivos en formato de lista larga, lo que facilita descubrir lo que queremos, pero aquellos usuarios que tienen el hábito de las pantallas negras, o incluso cualquiera que trabaje en servidores que no tienen GUI, lo harían. Quiere un comando simple o un conjunto de comandos que puedan 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 u ordenar una colección de archivos según su nombre, fecha de modificación, hora de creación o incluso cualquier filtro que podrías pensar en aplicar para obtener tu resultado.

Aquí, revelaremos la verdadera fortaleza de Linux examinando un conjunto de comandos que pueden ayudar a ordenar un archivo o incluso una lista de archivos por Fecha y Hora.

Utilidades de Linux para ordenar archivos en Linux

Algunas utilidades básicas de línea de comandos de Linux que son suficientes para ordenar un directorio según la Fecha y la Hora son:

ls comando

ls: enumera el contenido del directorio. Esta utilidad puede enumerar los archivos y directorios e incluso puede enumerar toda la información de estado sobre ellos, incluida: fecha y hora de modificación o acceso, permisos, tamaño, propietario, grupo, etc. .

Ya hemos cubierto muchos artículos sobre el comando ls y el comando sort de Linux; puede encontrarlos a continuación:

  1. Aprenda el comando ls con 15 ejemplos básicos
  2. Aprenda 7 comandos ls avanzados con ejemplos
  3. 15 preguntas útiles de la entrevista sobre el comando ls en Linux

ordenar comando

ordenar: este comando se puede utilizar para ordenar el resultado de cualquier búsqueda solo por cualquier campo o columna particular del campo.

Ya hemos cubierto dos artículos sobre el comando de clasificación de Linux; puede encontrarlos a continuación:

  1. 14 ejemplos de comandos de 'ordenación' de Linux - Parte 1
  2. 7 ejemplos útiles de comandos de “ordenación” de Linux – Parte 2

Estos comandos son en sí mismos comandos muy poderosos que debes dominar si trabajas en pantallas negras y tienes que lidiar con muchos archivos, solo para obtener el que deseas.

Algunas formas de ordenar archivos usando fecha y hora

A continuación se muestra la lista de comandos para ordenar según fecha y hora.

1. Listar archivos según el tiempo de modificación

El siguiente comando enumera los archivos en formato de lista larga y los clasifica según el tiempo de modificación, los más nuevos primero. Para ordenar en orden inverso, utilice el modificador '-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. Enumerar archivos según la hora del último acceso

Listado de archivos en el directorio según la hora del último acceso, es decir, según la última vez que se accedió al archivo, no se modificó.

# 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. Enumerar archivos según la hora de la última modificación

Listado de archivos en el directorio según la hora de la última modificación de la información de estado del archivo, o el 'ctime'. Este comando enumeraría primero el archivo cuya información de estado, como: propietario, grupo, permisos, tamaño, etc., se haya modificado 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 usa el modificador '-a' con los comandos anteriores, pueden enumerar y ordenar incluso los archivos ocultos en el directorio actual, y el modificador '-r' enumera la salida al revés orden.

Para una clasificación más profunda, como ordenar por Salida del comando find, sin embargo, también se puede usar ls, pero hay 'sort ' resulta más útil ya que la salida puede no tener solo el nombre del archivo sino también los campos deseados 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 buscar, siga este enlace: 35 ejemplos prácticos del comando "buscar" en Linux

4. Ordenar archivos según el mes

Aquí, usamos el comando find para buscar todos los archivos en el directorio raíz ('/') y luego imprimimos el resultado como: Mes en qué archivo Se accedió y luego nombre de archivo. De ese resultado completo, aquí enumeramos las 11 entradas principales.

# 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 usando la clave como primer campo, especificada por '-k1' y luego ordena por mes según lo especificado por 'M' delante 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 usamos el comando find para buscar todos los archivos en el directorio raíz, pero ahora imprimiremos el resultado como: última fecha en la que se accedió al archivo, última hora se accedió al archivo y luego nombre de archivo. De eso sacamos las 11 entradas principales.

# 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 clasificación 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 octava columna del primer campo y 'n' delante significa orden numérico, mientras que 'r' indica orden inverso clasificación.

# 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 el tiempo

Aquí, nuevamente usamos el comando find para enumerar 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 nombre de 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 según 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. Clasificación de la salida de ls -l según la fecha

Este comando ordena la salida del comando 'ls -l' según el mes del sexto campo y luego según 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

Del mismo modo, al tener algunos conocimientos del comando sort, puede ordenar casi cualquier listado en función de cualquier campo e incluso cualquier columna que desee. Estos fueron algunos de los trucos que le ayudarán a ordenar archivos según 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.