Hoe bestanden vinden en sorteren op basis van wijzigingsdatum en -tijd in Linux

Geneestelijk, slaan we gewoonlijk veel informatie op in de vorm van bestanden op ons systeem. Sommige, verborgen bestanden, andere in een aparte map geplaatst voor onze gemakkelijke begrip, terwijl er ook wel eentje zoals het is. Maar, deze hele zaak vult onze mappen aan, meestal op het bureaublad, waardoor het eruitziet als een chaos. Maar, het probleem ontstaat wanneer we een bestand moeten zoeken dat is aangepast op een specifieke datum en tijd in deze grote verzameling.

Find and Sort Files by Date and Time in Linux

Mensen die gemakkelijk met GUI’s kunnen om dit te vinden met behulp van Bestandsbeheerder, die bestanden in lang lijstformaat opslaat, waardoor het gemakkelijker is uit te zoeken wat we willen, maar gebruikers die gewoonlijk op zwarte schermen werken of zelfs iemand die op servers werkt die geen GUI’s hebben, zouden een eenvoudige opdracht of een set opdrachten willen die hun zoektocht kunnen vergemakkelijken.

Hierbij wordt de echte schoonheid van Linux getoond, want Linux beschikt over een verzameling van commando’s die, indien apart of samen gebruikt, helpen om een bestand te zoeken of een verzameling bestanden op hun Datum en Tijd uit te sorteren.

Hier zullen we de ware kracht van Linux onthullen door een set commando’s te onderzoeken die hulp bieden om een map uit te sorteren of zelfs een lijst met bestanden op basis van Datum en Tijd.

Linux-hulpmiddelen om bestanden in Linux te sorteren

Enkele basis Linux-opdrachtregelhulpmiddelen die voldoende zijn voor het sorteren van een map op basis van Datum en Tijd zijn:

De `ls`-opdracht.

ls – Dit hulpmiddel laat de inhoud van een map zien, het kan bestanden en mappen vermelden en zelfs alle statusinformatie over hen weergeven, inclusief de datum en tijd van wijziging of toegang, rechten, grootte, eigenaar, groep enzovoort.

We hebben al veel artikelen over de Linux-ls-commando en het sorteercommando geschreven, die u kunt vinden hieronder:

  1. Leer het ls-commando met 15 basisvoorbeelden
  2. Leer 7 geavanceerde ls-commando’s met voorbeelden
  3. 15 nuttige interviewvragen over het ls-commando in Linux

sorteercommando

sort – Dit commando kan gebruikt worden om de uitvoer van elke zoektocht op elke veld of een specifieke kolom van het veld te sorteren.

We hebben al twee artikelen over het Linux-sorteercommando geschreven, die u kunt vinden hieronder:

  1. 14 Linux ‘sort’ Commando Voorbeelden – Deel 1
  2. 7 Nuttige Linux ‘sort’ Commando Voorbeelden – Deel 2

Deze commando’s zijn zelf al zeer krachtige commando’s om te beheersen als u op zwarte schermen werkt en veel bestanden moet afhandelen om het gewenste bestand te krijgen.

Enkele manieren om bestanden te sorteren met behulp van datum en tijd

Hieronder zijn de lijst van commando’s om op basis van datum en tijd te sorteren.

1. Bestandenlijst op basis van wijzigingsdatum

Het commando hieronder geeft een bestandenlijst weer in de lang lijstformaat en sorteert bestanden op basis van de wijzigingsdatum, van nieuwste naar oudste. Om in omgekeerde volgorde te sorteren, gebruikt u de schakeloptie '-r' bij dit commando.

# 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. Bestandenlijst op basis van laatste toegangsdatum

Bestandenlijst in directory op basis van laatste toegangsdatum, d.w.z. op basis van de tijd dat het bestand voor het laatst werd aangevraagd, niet gewijzigd.

# 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. Bestandenlijst op basis van laatste wijzigingsdatum

Bestandenlijst in directory op basis van laatste wijzigingsdatum van bestandsstatusinformatie, of het 'ctime'. Dit commando zal het eerst het bestand weergeven dat een van de statusinformaties zoals eigenaar, groep, machtigingen, grootte最近 is gewijzigd.

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

Als de schakeloptie '-a' wordt gebruikt bij de bovenstaande commando’s, kunnen ze zelfs de verborgen bestanden in de huidige directory lijsten en sorteren, en de schakeloptie '-r' zal de uitvoer in omgekeerde volgorde weergeven.

Voor een dieper sorteren, zoals het sorteren op uitvoer van find-commando, kan ook ls worden gebruikt, maar 'sort' blijkt daar meer nuttig als de uitvoer niet alleen bestandsnamen bevat maar elke door de gebruiker gewenste velden.

De onderstaande commando’s tonen het gebruik van sort met het find commando om de lijst met bestanden te sorteren op basis van Datum en Tijd.

Om meer te weten te komen over het find commando, volg deze link: 35 Praktische Voorbeelden van het ‘find’ Commando in Linux

4. Bestanden sorteren op basis van Maand

Hier gebruiken we het find commando om alle bestanden in de root (' / ') directory te vinden en vervolgens de resultaten af te drukken als: Maand waarin het bestand is benaderd en vervolgens de bestandsnaam. Van dat volledige resultaat, tonen we hier de top 11 resultaten.

# 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

Het onderstaande commando sorteert de output op basis van de eerste kolom, gespecificeerd door '-k1' en vervolgens sorteert het op basis van de Maand, zoals gespecificeerd door 'M' ervoor.

# 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. Bestanden sorteren op basis van Datum

Hier gebruiken we opnieuw het find commando om alle bestanden in de root directory te vinden, maar nu drukken we het resultaat af als: laatste datum waarop het bestand is benaderd, laatste tijd waarop het bestand is benaderd en vervolgens de bestandsnaam. Van dat resultaat halen we de top 11 resultaten eruit.

# 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

Het onderstaande sorteercommando sorteert eerst op basis van het laatste cijfer van het jaar, dan op basis van het laatste cijfer van de maand in omgekeerde volgorde en tenslotte op basis van de eerste kolom. Hier betekent ‘1.8‘ de 8e kolom van de eerste kolom en ‘n’ betekent numerieke sortering, terwijl ‘r’ omgekeerde volgorde sortering aangeeft.

# 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. Bestanden sorteren op basis van Tijd

Hier gebruiken we opnieuw de opdracht find om de bovenste 11 bestanden in de rootmap te lijsten en het resultaat in het formaat: de laatste keer dat het bestand werd aangeraakt, gevolgd door de bestandsnaam.

# 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

De onderstaande opdracht sorteert de uitvoer op basis van de eerste kolom van het eerste veld van de uitvoer, dat is het eerste cijfer van de uur.

# 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. Sorteren van de uitvoer van ls -l op basis van datum

Deze opdracht sorteert de uitvoer van de opdracht 'ls -l' op basis van het 6e veld, dat maandoverzichtelijk is, en vervolgens op basis van het 7e veld, dat de datum is en numeriek.

# 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

Conclusie

Net zoals door het beheersen van enige kennis van de opdracht sort u bijna elke lijst kunt sorteren op basis van elk veld en zelfs elke kolom die u wenst. Dit waren enkele trucs om bestanden te sorteren op basis van datum of tijd. U kunt er eigen trucs uitbouwen op basis van deze. Echter, als u erover krijgt een andere interessante truc, kunt u die altijd in uw reacties vermelden.

Source:
https://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/