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.

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:
- Leer het ls-commando met 15 basisvoorbeelden
- Leer 7 geavanceerde ls-commando’s met voorbeelden
- 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:
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/