Kako pronaći i sortirati datoteke na osnovu datuma i vremena izmjene u Linuxu


Obično imamo naviku da spremamo mnogo informacija u obliku datoteka na našem sistemu. Neki, skriveni fajlovi, neki čuvani u posebnoj fascikli kreiranoj radi lakšeg razumevanja, dok su neki takvi kakvi jesu. Ali, sve ove stvari ispunjavaju naše imenike; obično desktop, zbog čega izgleda kao nered. No, problem nastaje kada u ovoj ogromnoj kolekciji trebamo tražiti određenu datoteku izmijenjenu na određeni datum i vrijeme.

Ljudi koji poznaju GUI mogu ga pronaći pomoću File Managera, koji izlistava datoteke u formatu dugačke liste, što olakšava otkrivanje onoga što želimo, ali oni korisnici koji imaju naviku crnih ekrana, ili čak bilo tko koji radi na serverima koji nemaju GUI, bi žele jednostavnu komandu ili skup naredbi koje bi mogle olakšati njihovu pretragu.

Ovdje se pokazuje prava ljepota Linuxa, jer Linux ima kolekciju naredbi koje ako se koriste odvojeno ili zajedno mogu pomoći u traženju datoteke ili sortiranju zbirke datoteka prema njihovom imenu, datumu izmjene, vremenu kreiranja ili čak bilo kojem filter koji biste mogli primijeniti da biste dobili svoj rezultat.

Ovdje ćemo otkriti pravu snagu Linuxa ispitivanjem skupa naredbi koje mogu pomoći u sortiranju datoteke ili čak liste datoteka prema Datumu i Vrijemenu.

Linux uslužni programi za sortiranje datoteka u Linuxu

Neki osnovni uslužni programi Linux komandne linije koji su dovoljni za sortiranje direktorija na osnovu Datuma i Vrijemena su:

ls command

ls – Ispis sadržaja direktorija, ovaj uslužni program može izlistati datoteke i direktorije, pa čak može navesti sve informacije o statusu o njima uključujući: datum i vrijeme izmjene ili pristupa, dozvole, veličinu, vlasnika, grupu itd. .

Već smo pokrili mnoge članke o Linux ls naredbi i sort komandi, možete ih pronaći u nastavku:

  1. Naučite ls naredbu sa 15 osnovnih primjera
  2. Naučite 7 naprednih ls naredbi s primjerima
  3. 15 korisnih pitanja za intervju o komandi ls u Linuxu

naredba sortiranja

sort – Ova komanda se može koristiti za sortiranje rezultata bilo koje pretrage samo po bilo kojem polju ili bilo kojoj posebnoj koloni polja.

Već smo pokrili dva članka o Linux naredbi sortiranja, možete ih pronaći u nastavku:

  1. 14 Linux primjera naredbi 'sort' – 1. dio
  2. 7 korisnih primjera naredbi za „sortiranje“ Linuxa – 2. dio

Ove komande su same po sebi veoma moćne komande za savladavanje ako radite na crnim ekranima i morate da se bavite mnogo datoteka, samo da biste dobili onu koju želite.

Neki načini za sortiranje datoteka pomoću datuma i vremena

Ispod je lista naredbi za sortiranje na osnovu datuma i vremena.

1. Navedite datoteke na osnovu vremena izmjene

Naredba u nastavku navodi datoteke u formatu dugačke liste i sortira datoteke na osnovu vremena izmjene, prvo najnovije. Za sortiranje obrnutim redoslijedom koristite prekidač '-r' sa ovom komandom.

# 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. Navedite datoteke na osnovu vremena posljednjeg pristupa

Popis fajlova u direktorijumu na osnovu vremena poslednjeg pristupa, tj. na osnovu vremena kada je fajl poslednji put pristupan, a ne modifikovan.

# 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. Navedite datoteke na osnovu vremena posljednje izmjene

Popis fajlova u direktorijumu zasnovan na vremenu posljednje izmjene informacija o statusu datoteke ili 'ctime'. Ova komanda bi prvo navela tu datoteku čiji su statusni podaci kao što su: vlasnik, grupa, dozvole, veličina itd. nedavno promijenjeni.

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

Ako se prekidač '-a' koristi s gornjim naredbama, oni mogu izlistati i sortirati čak i skrivene datoteke u trenutnom direktoriju, a prekidač '-r' ispisuje izlaz u obrnutom smjeru red.

Za dublje sortiranje, kao što je sortiranje na Izlaz naredbe find, međutim ls se također može koristiti, ali postoji 'sort ' se pokazuje korisnijim jer izlaz možda neće imati samo ime datoteke već i sva polja koja korisnik želi.

Naredbe ispod pokazuju upotrebu naredbe sort sa find za sortiranje liste datoteka na osnovu Datum i Time.

Da biste saznali više o naredbi find, slijedite ovaj link: 35 praktičnih primjera naredbe 'find' u Linuxu

4. Sortiranje datoteka na osnovu mjeseca

Ovdje koristimo naredbu find da pronađemo sve datoteke u korijenskom ('/') direktoriju, a zatim ispišemo rezultat kao: Mjesec u kojem fajlu pristupljeno, a zatim naziv datoteke. Od tog kompletnog rezultata, ovdje navodimo najboljih 11 unosa.

# 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

Naredba ispod sortira izlaz koristeći ključ kao prvo polje, specificirano sa '-k1', a zatim se sortira po mjesecu kako je navedeno sa 'M' ispred njega.

# 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. Sortirajte datoteke na osnovu datuma

Ovdje ponovo koristimo naredbu find da pronađemo sve datoteke u korijenskom direktoriju, ali sada ćemo ispisati rezultat kao: posljednji datum kada je fajl pristupen, zadnji vrijeme pristupa datoteci, a zatim naziv datoteke. Od toga izdvajamo prvih 11 unosa.

# 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

Donja naredba sortiranja prvo sortira na osnovu posljednje cifre godine, zatim sortira na osnovu posljednje cifre mjeseca obrnutim redoslijedom i na kraju sortira na osnovu prvog polja. Ovdje '1.8' znači 8. stupac prvog polja i 'n' ispred njega označava numeričko sortiranje, dok 'r' označava obrnuti redoslijed sortiranje.

# 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. Sortiranje datoteka na osnovu vremena

Ovdje ponovo koristimo naredbu find da ispišemo top 11 datoteka u korijenskom direktoriju i ispišemo rezultat u formatu: posljednji put kada je pristupljeno datoteci i zatim naziv datoteke.

# 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

Naredba u nastavku sortira izlaz na osnovu prve kolone prvog polja izlaza koje je prva znamenka sata.

# 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. Sortiranje rezultata ls -l na osnovu datuma

Ova komanda sortira izlaz naredbe 'ls -l' na osnovu 6. polja po mjesecu, a zatim na osnovu 7. polja koje je datum, numerički.

# 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

Zaključak

Isto tako, ako imate određeno znanje o naredbi sort, možete sortirati skoro svaki popis na osnovu bilo kojeg polja, pa čak i bilo koje kolone koju želite. Ovo su bili neki od trikova koji će vam pomoći da sortirate datoteke na osnovu datuma ili vremena. Na osnovu njih možete izraditi vlastite trikove. Međutim, ako imate još neki zanimljiv trik, uvijek ga možete spomenuti u komentarima.