Hvordan finne og sortere filer basert på endringsdato og -klokkeslett i Linux
Vanligvis har vi for vane å lagre mye informasjon i form av filer på systemet vårt. Noen, skjulte filer, noen lagret i en egen mappe laget for å lette forståelsen, mens noen er som de er. Men, hele denne greia fyller katalogene våre; vanligvis skrivebord, slik at det ser ut som et rot. Men problemet oppstår når vi trenger å søke etter en bestemt fil endret på en bestemt dato og klokkeslett i denne enorme samlingen.
Folk som er komfortable med GUI-er, kan finne det ved å bruke File Manager, som viser filer i langt listeformat, noe som gjør det enkelt å finne ut hva vi ønsket, men de brukerne som har en vane med svarte skjermer, eller til og med alle som jobber på servere som er blottet for GUI-er, ønsker en enkel kommando eller et sett med kommandoer som kan lette søket deres.
Den virkelige skjønnheten til Linux vises her, siden Linux har en samling kommandoer som hvis de brukes separat eller sammen kan hjelpe til med å søke etter en fil, eller sortere en samling filer i henhold til navn, endringsdato, opprettelsestidspunkt eller til og med filter du kunne tenke deg å bruke for å få resultatet.
Her vil vi avsløre den virkelige styrken til Linux ved å undersøke et sett med kommandoer som kan hjelpe til med å sortere en fil eller til og med en liste over filer etter dato og klokkeslett.
Linux-verktøy for å sortere filer i Linux
Noen grunnleggende Linux-kommandolinjeverktøy som akkurat er tilstrekkelig for å sortere en katalog basert på Dato og Tid er:
ls kommando
ls – Oppføring av innholdet i katalogen, dette verktøyet kan liste filene og katalogene og kan til og med liste opp all statusinformasjon om dem, inkludert: dato og klokkeslett for endring eller tilgang, tillatelser, størrelse, eier, gruppe osv. .
Vi har allerede dekket mange artikler om Linux ls command og sort command, du finner dem nedenfor:
- Lær ls Command med 15 grunnleggende eksempler
- Lær 7 avanserte kommandoer med eksempler
- 15 nyttige intervjuspørsmål om ls Command i Linux
sorteringskommando
sort – Denne kommandoen kan brukes til å sortere utdataene fra ethvert søk bare etter et hvilket som helst felt eller en bestemt kolonne i feltet.
Vi har allerede dekket to artikler om Linux sort kommando, du finner dem nedenfor:
- 14 Linux 'sort' kommandoeksempler – del 1
- 7 nyttige Linux 'sort' kommandoeksempler – del 2
Disse kommandoene er i seg selv veldig kraftige kommandoer å mestre hvis du jobber på svarte skjermer og må håndtere mange filer, bare for å få den du vil ha.
Noen måter å sortere filer ved hjelp av dato og klokkeslett
Nedenfor er listen over kommandoer som skal sorteres basert på dato og klokkeslett.
1. Liste filer basert på endringstid
Kommandoen nedenfor viser filer i lang listeformat, og sorterer filer basert på endringstid, nyeste først. For å sortere i omvendt rekkefølge, bruk '-r'
bryteren med denne kommandoen.
# 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. Liste filer basert på siste tilgangstid
Liste over filer i katalog basert på siste tilgangstid, dvs. basert på tidspunktet filen sist ble åpnet, ikke endret.
# 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. Liste filer basert på siste endringstid
Liste over filer i katalogen basert på siste endringstid for filens statusinformasjon, eller 'ctime'
. Denne kommandoen viser først den filen hvis statusinformasjon som: eier, gruppe, tillatelser, størrelse osv. nylig har blitt endret.
# 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
...
Hvis '-a'
-bryteren brukes med kommandoene ovenfor, kan de liste og sortere selv de skjulte filene i gjeldende katalog, og '-r'
-bryteren viser utdataene i omvendt rekkefølge rekkefølge.
For mer dyptgående sortering, som sortering på Output av find-kommandoen, kan imidlertid ls
også brukes, men der 'sort '
viser seg å være mer nyttig ettersom utdataene kanskje ikke bare har filnavn, men alle felt ønsket av brukeren.
Kommandoene nedenfor viser bruken av sort
med kommandoen finn
for å sortere listen over filer basert på Dato og Tid.
For å lære mer om finn-kommando, følg denne lenken: 35 Praktiske eksempler på 'finn'-kommando i Linux
4. Sortering av filer basert på måned
Her bruker vi kommandoen finn
for å finne alle filene i rotkatalogen ('/')
og deretter skrive ut resultatet som: Måned i hvilken fil ble åpnet og deretter filnavn. Av det komplette resultatet viser vi her en liste over topp 11 oppføringer.
# 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
Kommandoen nedenfor sorterer utdataene ved å bruke nøkkel som første felt, spesifisert av '-k1'
, og deretter sorterer den på måned som spesifisert av 'M'
foran seg.
# 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. Sorter filer basert på dato
Her bruker vi igjen kommandoen finn
for å finne alle filene i rotkatalogen, men nå vil vi skrive ut resultatet som: siste dato filen ble åpnet, sist. tid filen ble åpnet og deretter filnavn. Av det tar vi ut topp 11 påmeldinger.
# 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
Sorteringskommandoen nedenfor sorterer først på grunnlag av siste siffer i året, sorterer deretter på grunnlag av siste siffer i måneden i omvendt rekkefølge og sorterer til slutt på grunnlag av første felt. Her betyr '1.8' åttende kolonne i det første feltet og 'n' foran betyr numerisk sortering, mens 'r' indikerer omvendt rekkefølge sortering.
# 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. Sortering av filer basert på tid
Her bruker vi igjen kommandoen finn
for å liste ut de 11 beste filene i rotkatalogen og skrive ut resultatet i format: forrige gang filen ble åpnet og deretter filnavn.
# 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
Kommandoen nedenfor sorterer utdata basert på første kolonne i det første feltet av utdata som er første siffer i timen.
# 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. Sortering av output av ls -l basert på dato
Denne kommandoen sorterer utdataene til 'ls -l'
-kommandoen basert på 6. felt månedsvis, deretter basert på 7. felt som er dato, numerisk.
# 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
Konklusjon
På samme måte, ved å ha litt kunnskap om kommandoen sort, kan du sortere nesten hvilken som helst oppføring basert på hvilket som helst felt og til og med hvilken som helst kolonne du ønsker. Dette var noen triks for å hjelpe deg med å sortere filer basert på dato eller klokkeslett. Du kan bygge dine egne triks basert på disse. Men hvis du har et annet interessant triks, kan du alltid nevne det i kommentarene dine.