Kako najti in razvrstiti datoteke glede na datum in čas spremembe v Linuxu


Običajno imamo v našem sistemu veliko informacij v obliki datotek. Nekatere skrite datoteke, nekatere hranjene v ločeni mapi, ustvarjeni za lažje razumevanje, nekatere pa takšne kot so. Toda vse to zapolnjuje naše imenike; ponavadi namizje, zaradi česar je videti kot nered. Toda težava nastane, ko moramo v tej ogromni zbirki poiskati določeno datoteko, spremenjeno na določen datum in uro.

Ljudje, ki se prilegajo GUI-jem, ga lahko najdejo z upraviteljem datotek, ki datoteke navaja v obliki dolgega seznama, kar olajša ugotavljanje, kaj smo želeli, toda uporabniki, ki imajo navado črnih zaslonov, ali celo vsi, ki delajo na strežnikih, ki nimajo GUI-ja, bi želite preprost ukaz ali nabor ukazov, ki bi olajšali njihovo iskanje.

Tu se kaže resnična lepota Linuxa, saj ima Linux zbirko ukazov, ki lahko, če se uporabljajo ločeno ali skupaj, pomagajo poiskati datoteko ali razvrstiti zbirko datotek glede na njihovo ime, datum spremembe, čas ustvarjanja ali celo kateri koli filter, za katerega bi si lahko zamislili, da bi dobili svoj rezultat.

Tu bomo razkrili resnično moč Linuxa s preučitvijo nabora ukazov, ki lahko pomagajo pri razvrščanju datoteke ali celo seznama datotek po datumu in času.

Pripomočki za razvrščanje datotek v Linuxu

Nekateri osnovni pripomočki ukazne vrstice Linux, ki zadostujejo za razvrščanje imenika glede na datum in čas, so:

ls - Na seznamu vsebine imenika lahko ta pripomoček našteje datoteke in imenike ter celo vse informacije o stanju, vključno z njimi: datum in čas spremembe ali dostopa, dovoljenja, velikost, lastnik, skupina itd.

O članku Linux ls command and sort smo že zajeli številne članke, najdete jih spodaj:

  1. Naučite se ls Command s 15 osnovnimi primeri
  2. Naučite se 7 ukazov za napredno ls s primeri
  3. 15 uporabnih vprašanj za intervju o ukazu ls v Linuxu

sort - ta ukaz lahko uporabimo za razvrščanje rezultatov katerega koli iskanja samo po polju ali poljubnem stolpcu polja.

Že smo zajeli dva članka o ukazu za razvrščanje Linuxa, najdete jih spodaj:

  1. 14 Primeri ukazov za Linux za »razvrščanje« - 1. del
  2. 7 koristnih Linux-ovih primerov ukazov za razvrščanje - 2. del

Ti ukazi so sami po sebi zelo zmogljivi ukazi, ki jih lahko obvladate, če delate na črnih zaslonih in se morate spoprijeti z veliko datotekami, samo da dobite želeno.

Nekateri načini razvrščanja datotek z uporabo datuma in ure

Spodaj je seznam ukazov za razvrščanje glede na datum in čas.

Spodnji ukaz navaja datoteke v obliki dolgega seznama in razvršča datoteke glede na čas spreminjanja, najprej najnovejše. Če želite razvrščati v obratnem vrstnem redu, uporabite stikalo -r s tem ukazom.

# 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

Seznam datotek v imeniku glede na čas zadnjega dostopa, tj. Glede na čas zadnjega dostopa do datoteke in ni bil spremenjen.

# 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

Seznam datotek v imeniku glede na čas zadnje spremembe podatkov o stanju datoteke ali ctime . Ta ukaz bi najprej navedel tisto datoteko, katere informacije o stanju, kot so: lastnik, skupina, dovoljenja, velikost itd., So bile nedavno spremenjene.

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

Če je z zgornjimi ukazi uporabljeno stikalo -a , lahko seznam in razvrščanje celo skritih datotek v trenutnem imeniku, stikalo -r pa izpisuje v obratnem vrstnem redu.

Za bolj poglobljeno razvrščanje, na primer razvrščanje po ukazu Izhod iskanja, se lahko uporabi tudi ls , vendar je v pomoč sort , saj izhod morda ne vsebuje samo datoteke ime, vendar vsa polja, ki jih želi uporabnik.

Spodaj ukazi prikazujejo uporabo sort z ukazom find za razvrščanje seznama datotek glede na datum in čas.

Če želite izvedeti več o ukazu find, sledite tej povezavi: 35 Praktični primeri ukaza 'find' v Linuxu

Tukaj z ukazom find poiščemo vse datoteke v korenskem imeniku (‘/’) , nato pa rezultat natisnemo kot: Mesec, v katerem je bila datoteka dostopna in nato ime datoteke. Od tega popolnega rezultata je tukaj naštetih 11 najboljših vnosov.

# 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

Spodnji ukaz razvrsti izhod z uporabo ključa kot prvo polje, določeno z -k1 , nato pa razvrsti na mesec, kot je določeno z M pred njim.

# 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

Tu znova uporabljamo ukaz find , da najdemo vse datoteke v korenskem imeniku, zdaj pa bomo rezultat natisnili kot: zadnji datum dostopa do datoteke, zadnjič dostop do datoteke in nato ime datoteke. Od tega izvlečemo 11 najboljših vnosov.

# 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

Spodnji ukaz za razvrščanje najprej razvrsti na podlagi zadnje številke leta, nato razvrsti na podlagi zadnje številke meseca v obratnem vrstnem redu in na koncu razvrsti na podlagi prvega polja. Tu „1,8“ pomeni 8. stolpec prvega polja, „n“ pred njim pa številčno razvrščanje, medtem ko „r“ pomeni razvrščanje v obratnem vrstnem redu.

# 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

Tu znova uporabimo ukaz find , da v korenskem imeniku izpišemo 11 najboljših datotek in rezultat natisnemo v obliki: zadnjič dostop do datoteke in nato ime 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

Spodnji ukaz razvrsti izhod na podlagi prvega stolpca prvega polja izhoda, ki je prva številka ure.

# 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

Ta ukaz številčno razvrsti izhod ukaza ls -l na podlagi 6. polja, nato na podlagi 7. polja, ki je datum.

# 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ček

Z znanjem o ukazu za razvrščanje lahko razvrstite skoraj vsak seznam na podlagi katerega koli polja in celo katerega koli stolpca, ki ga želite. To je bilo nekaj trikov za lažje razvrščanje datotek glede na datum ali čas. Na podlagi teh lahko ustvarite svoje trike. Če pa imate še kakšen zanimiv trik, lahko to vedno omenite v svojih komentarjih.