Vyhledávání na webu

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:

  1. Naučte se ls Command s 15 základními příklady
  2. Naučte se 7 Advance ls příkazů s příklady
  3. 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:

  1. 14 Příklady příkazů „sort“ v Linuxu – část 1
  2. 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.