Zoeken op website

Bestanden zoeken en sorteren op basis van wijzigingsdatum en -tijd in Linux


Meestal hebben we de gewoonte om veel informatie in de vorm van bestanden op ons systeem op te slaan. Sommige zijn verborgen bestanden, sommige worden in een aparte map bewaard die voor ons gemak is gemaakt, terwijl andere zoals ze zijn. Maar dit hele spul vult onze mappen; meestal desktop, waardoor het op een puinhoop lijkt. Maar het probleem doet zich voor wanneer we in deze enorme verzameling moeten zoeken naar een bepaald bestand dat op een bepaalde datum en tijd is gewijzigd.

Mensen die zich op hun gemak voelen met GUI's kunnen het vinden met behulp van Bestandsbeheer, dat bestanden in een lange lijstindeling weergeeft, waardoor het gemakkelijk wordt om erachter te komen wat we wilden, maar gebruikers die de gewoonte hebben om zwarte schermen te gebruiken, of zelfs iedereen die op servers werkt die geen GUI's hebben, zouden dat doen. willen een eenvoudig commando of een reeks commando's die hun zoektocht kunnen vergemakkelijken.

De echte schoonheid van Linux blijkt hier, aangezien Linux een verzameling commando's heeft die, als ze afzonderlijk of samen worden gebruikt, kunnen helpen bij het zoeken naar een bestand, of het sorteren van een verzameling bestanden op basis van hun naam, datum van wijziging, tijdstip van creatie, of zelfs eender welk bestand. filter dat u zou kunnen overwegen om toe te passen om uw resultaat te krijgen.

Hier zullen we de echte kracht van Linux onthullen door een reeks opdrachten te onderzoeken die kunnen helpen bij het sorteren van een bestand of zelfs een lijst met bestanden op Datum en Tijd.

Linux-hulpprogramma's om bestanden te sorteren in Linux

Enkele basis Linux-opdrachtregelhulpprogramma's die net voldoende zijn voor het sorteren van een map op basis van Datum en Tijd zijn:

ls-opdracht

ls – Geeft een overzicht van de inhoud van de map. Dit hulpprogramma kan de bestanden en mappen weergeven en zelfs alle statusinformatie erover weergeven, inclusief: datum en tijd van wijziging of toegang, machtigingen, grootte, eigenaar, groep enz. .

We hebben al veel artikelen besproken over Linux ls command en sort command, je kunt ze hieronder vinden:

  1. Leer ls Command met 15 basisvoorbeelden
  2. Leer 7 Advance ls-opdrachten met voorbeelden
  3. 15 nuttige interviewvragen over ls Command in Linux

sorteer commando

sort – Deze opdracht kan worden gebruikt om de uitvoer van een zoekopdracht te sorteren op een willekeurig veld of een bepaalde kolom van het veld.

We hebben al twee artikelen over Linux sorteercommando besproken, je kunt ze hieronder vinden:

  1. 14 Linux ‘sorteer’-opdrachtvoorbeelden – Deel 1
  2. 7 Handige Linux ‘sorteer’-opdrachtvoorbeelden – Deel 2

Deze commando's zijn op zichzelf zeer krachtige commando's die je onder de knie moet krijgen als je op zwarte schermen werkt en met veel bestanden te maken hebt, gewoon om de gewenste te krijgen.

Enkele manieren om bestanden te sorteren op datum en tijd

Hieronder vindt u de lijst met opdrachten die u kunt sorteren op basis van datum en tijd.

1. Lijst bestanden op basis van wijzigingstijd

Met de onderstaande opdracht worden bestanden weergegeven in een lange lijstindeling en worden bestanden gesorteerd op basis van wijzigingstijd, de nieuwste eerst. Om in omgekeerde volgorde te sorteren, gebruikt u de '-r'-schakelaar 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. Geef bestanden weer op basis van de laatste toegangstijd

Lijst van bestanden in de map op basis van de laatste toegangstijd, d.w.z. op basis van de tijd waarop het bestand voor het laatst werd geopend, 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. Geef bestanden weer op basis van de laatste wijzigingstijd

Lijst van bestanden in de map op basis van het laatste wijzigingstijdstip van de statusinformatie van het bestand, of de 'ctime'. Met deze opdracht wordt eerst dat bestand weergegeven waarvan de statusinformatie zoals: eigenaar, groep, machtigingen, grootte enz. onlangs 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 '-a'-schakelaar wordt gebruikt bij bovenstaande opdrachten, kunnen ze zelfs de verborgen bestanden in de huidige map weergeven en sorteren, en de '-r'-schakelaar geeft de uitvoer in omgekeerde volgorde weer volgorde.

Voor meer diepgaand sorteren, zoals sorteren op Uitvoer van het find commando, kan ls echter ook worden gebruikt, maar dan 'sort ' blijkt nuttiger omdat de uitvoer mogelijk niet alleen een bestandsnaam heeft, maar ook alle door de gebruiker gewenste velden.

Onderstaande opdrachten tonen het gebruik van sort met de opdracht find om de lijst met bestanden te sorteren op basis van Datum en Tijd.

Volg deze link voor meer informatie over de opdracht find: 35 praktische voorbeelden van de opdracht 'find' in Linux

4. Bestanden sorteren op maand

Hier gebruiken we de opdracht find om alle bestanden in de hoofddirectory ('/') te vinden en het resultaat vervolgens af te drukken als: Maand in welk bestand werd geopend en vervolgens de bestandsnaam. Van dat volledige resultaat vermelden we hier de top 11 inzendingen.

# 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 uitvoer met sleutel als eerste veld, gespecificeerd door '-k1' en sorteert vervolgens op 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. Sorteer bestanden op basis van datum

Hier gebruiken we opnieuw de opdracht find om alle bestanden in de hoofdmap te vinden, maar nu zullen we het resultaat afdrukken als: laatste datum waarop het bestand werd geopend, laatste tijdstip waarop het bestand werd geopend en vervolgens de bestandsnaam. Daaruit halen we de top 11 inzendingen.

# 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, sorteert vervolgens op basis van het laatste cijfer van de maand in omgekeerde volgorde en ten slotte op basis van het eerste veld. Hier betekent '1.8' de 8e kolom van het eerste veld en 'n' ervoor betekent numerieke sortering, terwijl 'r' de omgekeerde volgorde aangeeft sorteren.

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

Hier gebruiken we opnieuw de opdracht find om de top 11 bestanden in de hoofdmap weer te geven en het resultaat in de indeling af te drukken: de laatste keer dat het bestand werd geopend en vervolgens 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

Met het onderstaande commando wordt de uitvoer gesorteerd op basis van de eerste kolom van het eerste veld van de uitvoer, dat het eerste cijfer van het uur is.

# 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. Uitvoer van ls -l sorteren op basis van datum

Dit commando sorteert de uitvoer van het 'ls -l' commando op basis van het 6e veld op maandbasis, en vervolgens op basis van het 7e veld, dat numeriek de datum is.

# 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

Op dezelfde manier kunt u, door enige kennis te hebben van het commando sort, bijna elke vermelding sorteren op basis van elk veld en zelfs elke gewenste kolom. Dit waren enkele trucjes om u te helpen bestanden te sorteren op basis van datum of tijd. Op basis hiervan kun je je eigen trucs laten bouwen. Als je echter een andere interessante truc hebt, kun je die altijd in je opmerkingen vermelden.