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ó:
- Aprèn l'ordre ls amb 15 exemples bàsics
- Aprèn 7 ordres avançades ls amb exemples
- 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ó:
- 14 exemples d'ordres ordenar de Linux: part 1
- 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.