Kuinka etsiä ja lajitella tiedostoja muokkauspäivämäärän ja -ajan perusteella Linuxissa


Yleensä meillä on tapana tallentaa järjestelmäämme paljon tietoa tiedostojen muodossa. Jotkut piilotetut tiedostot, jotkut pidetään erillisessä kansiossa, joka on luotu ymmärtämisen helpottamiseksi, kun taas jotkut sellaisina kuin ne ovat. Mutta tämä koko juttu täyttää hakemistomme; yleensä työpöydällä, joten se näyttää sotkulta. Mutta ongelma syntyy, kun meidän on etsittävä tiettyä tiedostoa, jota on muokattu tiettynä päivänä ja kellonaikana tästä valtavasta kokoelmasta.

Ihmiset, jotka ovat tyytyväisiä graafisiin käyttöliittymiin, voivat löytää ne File Managerista, joka luetteloi tiedostot pitkällä luettelomuodolla, mikä helpottaa sen selvittämistä, mitä halusimme, mutta ne käyttäjät, joilla on tapana käyttää mustia näyttöjä, tai jopa kuka tahansa palvelimella työskentelevä, jolla ei ole käyttöliittymää haluat yksinkertaisen komennon tai komentokokonaisuuden, joka voisi helpottaa hakua.

Linuxin todellinen kauneus näkyy tässä, koska Linuxilla on joukko komentoja, jotka erikseen tai yhdessä käytettynä voivat auttaa etsimään tiedostoa tai lajittelemaan tiedostokokoelman nimen, muokkauspäivän, luomisajan tai jopa minkä tahansa muun suodatinta, jota voit ajatella soveltavan saadaksesi tuloksen.

Tässä paljastetaan Linuxin todellinen vahvuus tutkimalla komentoja, jotka voivat auttaa lajittelemaan tiedoston tai jopa luettelon tiedostoista päivämäärän ja kellonajan mukaan.

Linux-apuohjelmat tiedostojen lajitteluun Linuxissa

Joitakin Linux-komentorivin apuohjelmia, jotka ovat riittäviä hakemiston lajittelemiseen päivämäärän ja kellonajan perusteella, ovat:

ls - Luetteloi hakemiston sisällön, tämä apuohjelma voi luetella tiedostot ja hakemistot ja jopa luetteloida kaikki niiden tilatiedot, mukaan lukien muokkauksen tai käytön päivämäärä ja kellonaika, käyttöoikeudet, koko, omistaja, ryhmä jne.

Olemme jo käsitelleet monia artikkeleita Linux ls -komennosta ja lajittelukomennosta, löydät ne alla:

  1. Opi komento 15 perusesimerkillä
  2. Opi 7 edeltävää komentoa esimerkkien avulla
  3. 15 hyödyllistä haastattelukysymystä ls-komennosta Linuxissa

lajittelu - Tätä komentoa voidaan käyttää minkä tahansa haun tuloksen lajittelemiseen minkä tahansa kentän tai minkä tahansa kentän sarakkeen mukaan.

Olemme jo käsitelleet kahta artikkelia Linux-lajittelukomennosta, löydät ne alla:

  1. 14 Linux-lajittelukomennon esimerkkiä - osa 1
  2. 7 hyödyllistä Linux-lajittelukomennon esimerkkiä - osa 2

Nämä komennot ovat itsessään erittäin tehokkaita komentoja hallita, jos työskentelet mustilla näytöillä ja joudut käsittelemään paljon tiedostoja vain saadaksesi haluamasi.

Joitakin tapoja lajitella tiedostoja päivämäärän ja kellonajan avulla

Alla on luettelo komennoista, jotka on lajiteltava päivämäärän ja kellonajan perusteella.

Alla oleva komento luetteloi tiedostot pitkässä luettelomuodossa ja lajittelee tiedostot ensin uusimman muokkausajan perusteella. Lajittele päinvastaisessa järjestyksessä käyttämällä -r -kytkintä tämän komennon kanssa.

# 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

Tiedostojen luettelo hakemistossa viimeisen käyttöajan perusteella, ts. Ajankohdan mukaan, jolloin tiedostoa viimeksi käytettiin, ei muokattu.

# 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

Tiedostojen luettelo hakemistossa tiedoston tilatietojen viimeisen muokkausajan tai ctime -tietojen perusteella. Tämä komento luetteloisi ensin tiedoston, jonka tilatietoja, kuten omistaja, ryhmä, käyttöoikeudet, koko jne., On äskettäin muutettu.

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

Jos -a -kytkintä käytetään yllä olevien komentojen kanssa, ne voivat luetteloida ja lajitella jopa nykyisen hakemiston piilotetut tiedostot, ja -r -kytkin listaa lähdön päinvastaisessa järjestyksessä.

Perusteellisempaan lajitteluun, kuten lajittelu Output of find -komennossa, voidaan kuitenkin käyttää myös ls , mutta siellä sort osoittautuu hyödyllisemmäksi, koska tulosteessa ei välttämättä ole vain tiedostoa nimi, mutta kaikki käyttäjän haluamat kentät.

Alla olevat komennot näyttävät sort -toiminnon find -komennolla tiedostoluettelon lajittelemiseksi päivämäärän ja kellonajan perusteella.

Jos haluat lisätietoja Find-komennosta, seuraa tätä linkkiä: 35 käytännön esimerkkiä 'find' -komennosta Linuxissa

Tässä käytämme find -komentoa kaikkien tiedostojen etsimiseen juurihakemistosta (’/’) ja tulostamme sitten tuloksen muodossa: Kuukausi, jolloin tiedostoa käytettiin, ja sitten tiedostonimi. Tästä täydellisestä tuloksesta tässä luetellaan 11 parasta kohdetta.

# 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

Alla oleva komento lajittelee lähdön avaimen avulla ensimmäiseksi kentäksi, jonka määrittelee -k1 , ja sitten sen järjestys kuukaudeksi, jonka määrittelee edeltäjänsä 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

Tässä taas käytetään find -komentoa kaikkien tiedostojen löytämiseen juurihakemistosta, mutta nyt tulostamme tuloksen muodossa: viimeinen päivä, jolloin tiedostoa käytettiin, viimeinen kerta, kun tiedostoa käytettiin, ja sitten tiedostonimi. Tästä otamme 11 suosituinta merkintää.

# 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

Alla oleva lajittelukomento lajittelee ensin vuoden viimeisen numeron perusteella, sitten lajittelee kuukauden viimeisen numeron perusteella päinvastaisessa järjestyksessä ja lopuksi ensimmäisen kentän perusteella. Tässä ’1,8’ tarkoittaa ensimmäisen kentän kahdeksatta saraketta ja n edessä sitä tarkoittaa numeerista lajittelua, kun taas ’r’ tarkoittaa käänteisen järjestyksen lajittelua.

# 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

Tässä taas käytämme find -komentoa luetteloidaksesi 11 tärkeintä tiedostoa juurihakemistossa ja tulosta tulos muodossa: viimeksi käytetty tiedosto ja sitten tiedostonimi.

# 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

Alla oleva komento lajittelee lähdön lähdön ensimmäisen kentän ensimmäisen sarakkeen perusteella, joka on tunnin ensimmäinen numero.

# 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

Tämä komento lajittelee ls -l -komennon lähdön kuudennen kentän mukaan kuukaudessa ja sitten seitsemännen kentän perusteella, joka on päivämäärä, numeerisesti.

# 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

Johtopäätös

Samoin, tietämällä jonkinlaista lajittelukomentoa, voit lajitella melkein kaikki luettelot minkä tahansa kentän ja jopa minkä tahansa haluamasi sarakkeen perusteella. Nämä olivat joitain temppuja, joiden avulla voit lajitella tiedostoja päivämäärän tai ajan mukaan. Voit luoda omia temppujasi näiden perusteella. Jos sinulla on kuitenkin muita mielenkiintoisia temppuja, voit aina mainita ne kommenteissasi.