Com trobar i ordenar fitxers en funció de la data i l'hora de modificació a Linux


Normalment, tenim el costum de desar molta informació en forma de fitxers al nostre sistema. Alguns, fitxers ocults, alguns guardats en una carpeta separada creada per a la nostra facilitat de comprensió, mentre que alguns tal com són. Però, tot això omple els nostres directoris; normalment d'escriptori, fent-lo semblar un desastre. Però, el problema sorgeix quan necessitem cercar un fitxer determinat modificat en una data i hora concretes en aquesta enorme col·lecció.

Les persones còmodes amb les GUI poden trobar-ho mitjançant el Gestor de fitxers, que enumera els fitxers en un format de llista llarga, cosa que fa que sigui fàcil esbrinar què volíem, però aquells usuaris que tinguin l'hàbit de les pantalles negres, o fins i tot qualsevol que treballi en servidors que no tinguin GUI. volen una ordre senzilla o un conjunt d'ordres que puguin facilitar la seva cerca.

La veritable bellesa de Linux es mostra aquí, ja que Linux té una col·lecció d'ordres que, si s'utilitzen per separat o junts, poden ajudar a cercar un fitxer o ordenar una col·lecció de fitxers segons el seu nom, data de modificació, hora de creació o fins i tot qualsevol altre. filtre que podríeu pensar aplicar per obtenir el vostre resultat.

Aquí, revelarem la força real de Linux examinant un conjunt d'ordres que poden ajudar a ordenar un fitxer o fins i tot una llista de fitxers per data i hora.

Utilitats de Linux per ordenar fitxers a Linux

Algunes utilitats bàsiques de línia d'ordres de Linux que són suficients per ordenar un directori segons la data i l'hora són:

ls - Llista dels continguts del directori, aquesta utilitat pot enumerar els fitxers i directoris i fins i tot pot enumerar tota la informació d'estat sobre ells, inclosa: data i hora de modificació o accés, permisos, mida, propietari, grup, etc.

Ja hem cobert molts articles sobre l'ordre i l'ordre d'ordenació de Linux ls, els podeu trobar a continuació:

  1. Aprèn l'ordre ls amb 15 exemples bàsics
  2. Aprèn 7 ordres avançades ls amb exemples
  3. 15 preguntes útils d'entrevista sobre ls Command a Linux

sort - Aquesta ordre es pot utilitzar per ordenar la sortida de qualsevol cerca només per qualsevol camp o qualsevol columna en particular del camp.

Ja hem cobert dos articles sobre l'ordre d'ordenació de Linux, els podeu trobar a continuació:

  1. 14 exemples d'ordres ordenar de Linux: part 1
  2. 7 exemples útils d'ordres sort de Linux - Part 2

Aquestes ordres són en si mateixes ordres molt potents per dominar si treballeu en pantalles negres i heu de fer front a molts fitxers, només per obtenir el que voleu.

Algunes maneres d'ordenar fitxers utilitzant la data i l'hora

A continuació es mostra la llista d'ordres per ordenar segons la data i l'hora.

L'ordre següent enumera els fitxers en format de llista llarga i ordena els fitxers en funció del temps de modificació, primer el més recent. Per ordenar en ordre invers, utilitzeu el commutador -r amb aquesta ordre.

# 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

Llistat de fitxers al directori en funció de l'hora d'últim accés, és a dir, en funció de l'hora en què es va accedir per darrera vegada al fitxer, no modificat.

# 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

Llistat de fitxers al directori basat en l'hora de l'última modificació de la informació d'estat del fitxer o el ctime. Aquesta ordre enumeraria primer el fitxer del qual s'ha canviat recentment qualsevol informació d'estat com ara: propietari, grup, permisos, mida, etc.

# 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 s'utilitza el commutador -a amb les ordres anteriors, poden llistar i ordenar fins i tot els fitxers ocults al directori actual, i el commutador -r llista la sortida en ordre invers.

Per a una ordenació més detallada, com l'ordenació a la sortida de l'ordre find, però també es pot utilitzar ls, però allà sort resulta més útil ja que la sortida pot no tenir només un fitxer nom, però qualsevol camp desitjat per l'usuari.

Les ordres següents mostren l'ús de sort amb l'ordre find per ordenar la llista de fitxers segons la data i l'hora.

Per obtenir més informació sobre l'ordre find, seguiu aquest enllaç: 35 exemples pràctics de l'ordre find a Linux

Aquí, utilitzem l'ordre find per trobar tots els fitxers al directori arrel (‘/’) i després imprimim el resultat com a: Mes en què es va accedir al fitxer i després el nom del fitxer. D'aquest resultat complet, aquí enumerem les 11 millors entrades.

# 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

L'ordre següent ordena la sortida utilitzant la clau com a primer camp, especificat per -k1 i després s'ordena en Mes tal com especifica M al davant.

# 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

Aquí, de nou, utilitzem l'ordre find per trobar tots els fitxers al directori arrel, però ara imprimirem el resultat com a: darrera data en què es va accedir al fitxer, darrera vegada que es va accedir al fitxer i després nom del fitxer. D'això en traiem les 11 millors entrades.

# 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

L'ordre d'ordenació següent ordena primer en funció de l'últim dígit de l'any, després s'ordena en funció de l'últim dígit del mes en ordre invers i finalment s'ordena en funció del primer camp. Aquí, 1.8 significa la vuitena columna del primer camp i n al davant significa ordenació numèrica, mentre que r indica l'ordre invers.

# 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

Aquí, de nou, utilitzem l'ordre find per enumerar els 11 fitxers principals del directori arrel i imprimir el resultat en format: darrera vegada que es va accedir al fitxer i després el nom del fitxer.

# 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

L'ordre següent ordena la sortida en funció de la primera columna del primer camp de la sortida, que és el primer dígit de l'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

Aquesta ordre ordena la sortida de l'ordre ls -l basant-se en el sisè camp en funció del mes, després basant-se en el setè camp, que és la data, numèricament.

# 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ó

De la mateixa manera, tenint cert coneixement de l'ordre d'ordenació, podeu ordenar gairebé qualsevol llista en funció de qualsevol camp i fins i tot la columna que vulgueu. Aquests van ser alguns dels trucs per ajudar-vos a ordenar fitxers en funció de la data o l'hora. Podeu crear els vostres propis trucs basats en aquests. Tanmateix, si teniu algun altre truc interessant, sempre ho podeu mencionar als vostres comentaris.