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:
- Naučite ls naredbu sa 15 osnovnih primjera
- Naučite 7 naprednih ls naredbi s primjerima
- 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:
- 14 Linux primjera naredbi 'sort' – 1. dio
- 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.