Jak najít a seřadit soubory na základě data a času modifikace v Linuxu
Obvykle máme ve zvyku ukládat v našem systému mnoho informací ve formě souborů. Některé, skryté soubory, některé uložené v samostatné složce vytvořené pro naše snazší pochopení, zatímco některé tak, jak jsou. Ale celá tato věc zaplňuje naše adresáře; obvykle desktop, takže to vypadá jako nepořádek. Problém však nastává, když potřebujeme v této obrovské sbírce vyhledat konkrétní soubor upravený v určité datum a čas.
Lidé, kteří mají rádi grafické uživatelské rozhraní, jej mohou najít pomocí Správce souborů, který uvádí soubory ve formátu s dlouhým seznamem, takže je snadné zjistit, co chceme, ale uživatelé, kteří mají ve zvyku černé obrazovky, nebo dokonce kdokoli, kdo pracuje na serverech bez GUI, by chcete jednoduchý příkaz nebo sadu příkazů, které by mohly usnadnit jejich hledání.
Zde se ukazuje skutečná krása Linuxu, protože Linux má sbírku příkazů, které, pokud se používají samostatně nebo společně, mohou pomoci vyhledat soubor nebo seřadit sbírku souborů podle jejich názvu, data modifikace, času vytvoření nebo dokonce libovolného filtr, který byste mohli použít, abyste získali svůj výsledek.
Zde odhalíme skutečnou sílu Linuxu prozkoumáním sady příkazů, které mohou pomoci seřadit soubor nebo dokonce seznam souborů podle Datum a Času.
Linuxové nástroje pro třídění souborů v Linuxu
Některé základní linuxové nástroje příkazového řádku, které jsou dostačující pro řazení adresářů podle Datum a Času, jsou:
ls příkaz
ls – Výpis obsahu adresáře, tento nástroj může vypsat seznam souborů a adresářů a dokonce může vypsat všechny stavové informace o nich, včetně: data a času úpravy nebo přístupu, oprávnění, velikosti, vlastníka, skupiny atd. .
O příkazu ls a příkazu řazení pro Linux jsme již probrali mnoho článků, najdete je níže:
- Naučte se ls Command s 15 základními příklady
- Naučte se 7 Advance ls příkazů s příklady
- 15 Užitečné otázky k rozhovoru o ls Command v Linuxu
příkaz řazení
sort – Tento příkaz lze použít k seřazení výstupu jakéhokoli vyhledávání podle libovolného pole nebo konkrétního sloupce pole.
Již jsme probrali dva články o příkazu řazení v Linuxu, najdete je níže:
- 14 Příklady příkazů „sort“ v Linuxu – část 1
- 7 Užitečné příklady příkazů „sort“ systému Linux – část 2
Tyto příkazy jsou samy o sobě velmi mocnými příkazy, které je třeba zvládnout, pokud pracujete na černých obrazovkách a musíte se vypořádat se spoustou souborů, jen abyste získali ten, který chcete.
Některé způsoby řazení souborů pomocí data a času
Níže je uveden seznam příkazů k řazení podle data a času.
1. Seznam souborů podle času úpravy
Níže uvedený příkaz uvádí soubory ve formátu dlouhého výpisu a třídí soubory podle času úpravy, od nejnovějšího. Chcete-li seřadit v opačném pořadí, použijte s tímto příkazem přepínač '-r'
.
# 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. Seznam souborů na základě času posledního přístupu
Výpis souborů v adresáři na základě času posledního přístupu, tj. podle času posledního přístupu k souboru, bez úprav.
# 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. Seznam souborů podle času poslední úpravy
Výpis souborů v adresáři na základě času poslední úpravy informací o stavu souboru nebo 'ctime'
. Tento příkaz vypíše jako první soubor, u kterého byly nedávno změněny jakékoli informace o stavu, jako je: vlastník, skupina, oprávnění, velikost atd.
# 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
...
Pokud je s výše uvedenými příkazy použit přepínač '-a'
, mohou vypsat a seřadit i skryté soubory v aktuálním adresáři a přepínač '-r'
vypíše výstup obráceně. objednat.
Pro podrobnější třídění, jako je třídění podle příkazu Výstup příkazu najít, lze však použít také příkaz ls
, ale zde 'sort '
se ukazuje jako užitečnější, protože výstup nemusí mít pouze název souboru, ale všechna pole požadovaná uživatelem.
Níže uvedené příkazy ukazují použití sort
s příkazem find
k seřazení seznamu souborů podle Datum a Času.
Chcete-li se dozvědět více o příkazu find, klikněte na tento odkaz: 35 praktických příkladů příkazu ‚find‘ v Linuxu
4. Třídění souborů podle měsíce
Zde použijeme příkaz najít
k vyhledání všech souborů v kořenovém adresáři ('/')
a poté vytiskneme výsledek jako: Měsíc ve kterém souboru byl přístupný a poté název souboru. Z tohoto kompletního výsledku uvádíme seznam nejlepších 11 záznamů.
# 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
Níže uvedený příkaz třídí výstup pomocí klíče jako prvního pole, zadaného jako '-k1'
, a poté třídí podle měsíce, jak je zadáno 'M'
před ním.
# 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. Seřaďte soubory podle data
Zde opět použijeme příkaz najít
k nalezení všech souborů v kořenovém adresáři, ale nyní vytiskneme výsledek jako: poslední datum, kdy byl soubor otevřen, poslední čas byl soubor zpřístupněn a poté název souboru. Z toho vybíráme 11 nejlepších příspěvků.
# 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
Níže uvedený příkaz řazení nejprve seřadí na základě poslední číslice roku, poté seřadí na základě poslední číslice měsíce v opačném pořadí a nakonec seřadí na základě prvního pole. Zde '1.8' znamená 8. sloupec prvního pole a 'n' před ním znamená číselné řazení, zatímco 'r' označuje opačné pořadí třídění.
# 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. Třídění souborů podle času
Zde opět použijeme příkaz najít
k výpisu 11 nejlepších souborů v kořenovém adresáři a vytiskneme výsledek ve formátu: poslední přístup k souboru a pak název souboru.
# 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
Níže uvedený příkaz třídí výstup na základě prvního sloupce prvního pole výstupu, což je první číslice hodiny.
# 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. Třídění výstupu ls -l podle data
Tento příkaz třídí výstup příkazu 'ls -l'
na základě 6. pole po měsíci, poté na základě 7. pole, které je datum, číselně.
# 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
Závěr
Podobně, pokud máte určitou znalost příkazu sort, můžete seřadit téměř jakýkoli výpis na základě libovolného pole a dokonce i libovolného sloupce, který si přejete. Toto byly některé z triků, které vám pomohou třídit soubory podle data nebo času. Na jejich základě si můžete vytvořit své vlastní triky. Pokud však máte nějaký další zajímavý trik, můžete jej vždy zmínit ve svých komentářích.