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:

  1. Lær ls Command med 15 grunnleggende eksempler
  2. Lær 7 avanserte kommandoer med eksempler
  3. 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:

  1. 14 Linux 'sort' kommandoeksempler – del 1
  2. 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.