Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: ajaaskel - 20.11.14 - klo:19.15

Otsikko: fileage --- valitse tiedostoja iän perusteella
Kirjoitti: ajaaskel - 20.11.14 - klo:19.15
Muistatko mitä tiedostoja käsittelit 5 viikkoa sitten ?  Tai haluaisitko siirtää vaikkapa 6 kk vanhemmat tiedostot jonnekin ?

Kirjoittelin helppokäyttöisen "seulan" joka valitsee vain tietyn ikäiset tiedostot. Nimeksi tuli "FileAge" (mistä lienee tullut...). Paketoin sen ".deb" -paketiksi:

http://www.homelinuxpc.com/download/fileage_1.1-1_all.deb (http://www.homelinuxpc.com/download/fileage_1.1-1_all.deb)

Tuo seula toimii joko yksin kun antaa polun josta tiedostoja etsitään tai sille voi myös putkittaa vaikka "find" ohjelmasta, lukee vakiosyötteestä jos polun kohdalle antaa "-" -merkin.  Se osaa etsiä operaattoreilla >, <, <=, >=, =, == ja ajan voi antaa yksiköissä s, mi, h, d, w, mo, y.

Operaattori "=" olisi käyttökelvoton sellaisenaan liian tarkkana (aika lasketan sisäisesti aina sekunteina) joten tein asian toimimaan likimääräishaulla niin että:

=    vastaa +-30 % tarkkuutta
==  vastaa +- 10 % tarkkuutta

jolloin hakuhaarukka tuntui käyttökelpoiselta.   Syntaksi:


Koodia: [Valitse]
fileage  <polku>  <'sääntö'>  [ 'komento  "$filename"' ]

Jos komento (eli 3. parametri) puuttuu niin tiedostojen nimet listataan. Kovat lainaukset säännön ympärillä ja komennon ympärillä ovat pakolliset.  Sen lisäksi tuo "$filename" pitää olla pehmeissä lainauksissa eli tavallisissa lainausmerkeissä.


Käyttöesimerkkejä:

Koodia: [Valitse]
fileage   /home/matti   '> 2 days'
Koodia: [Valitse]
fileage  /home/maija   '= 5 weeks'
Koodia: [Valitse]
fileage  /home/matti  '>6 months'   'mv "$filename"  /mnt/usbdisk/backup'
Koodia: [Valitse]
find . -maxdepth 1 -type f  | fileage  -   '= 1 d'

Putkitettu syöte voi tulla mistä hyvänsä ohjelmasta jos se antaa polun tiedostonimen eteen, muuten haku ei ole mahdollista.  "find" sopii hyvin,  "ls" ei anna polkua mukaan jolloin se toimii vain kun ollaan kyseisessä hakemistossa.

Tuolle lienee käyttöä jos pitää iän perusteella käsitellä tiedostoja.  Lisätietoja löytyy tavalliseen tapaan kun antaa asennuksen jälkeen päätteessä:

Koodia: [Valitse]
man  fileage
Otsikko: Vs: fileage --- valitse tiedostoja iän perusteella
Kirjoitti: petteriIII - 21.11.14 - klo:15.20
Kivasti tuntuu toimivan. Onhan tämmöisissä kamalan iso homma, ei taida kaikki tajuta. Mutta eikö tunnu hyvältä kun saa valmiiksi ?
Tattista.
 
Otsikko: Vs: fileage --- valitse tiedostoja iän perusteella
Kirjoitti: Tomin - 21.11.14 - klo:15.23
Voisiko tuota saada myös vaikka sellaisenaan .tar.gz:na tai vastaavaa, kun kaikki jakelut ei käytä deb-paketteja ja toisaalta ei ole tarve asentaa koko järjestelmään. Tietysti voihan sen tuolta deb:istä purkaa.
Otsikko: Vs: fileage --- valitse tiedostoja iän perusteella
Kirjoitti: ajaaskel - 21.11.14 - klo:19.15
Lainaus
Tietysti voihan sen tuolta deb:istä purkaa.


Koodia: [Valitse]
ar -x fileage_1.1-1_all.deb
ja tuloksena on:

control.tar.gz
data.tar.gz
debian-binary

Noista .deb paketti koostuu.

Tuolta data.tar.gz: stä löytyy taasen mitä etsit kun sen purkaa:

Koodia: [Valitse]
tar -xzvf data.tar.gz./usr/
./usr/share/
./usr/share/man/
./usr/share/man/man1/
./usr/share/man/man1/fileage.1.gz
./usr/share/doc/
./usr/share/doc/fileage/
./usr/share/doc/fileage/copyright
./usr/share/doc/fileage/gpl3_fileage.txt
./usr/share/doc/fileage/changelog.gz
./usr/bin/
./usr/bin/fileage


Sieltä löytyy /usr kansion alta mutta tavarat joutuu käsin mättämään oikeisiin paikkoihin. Tuosta näkyy kuitenkin minne ne menisivät jos ne asentuisivat paketinhallinnan kautta.

PS.  Jos teet jälleen toiseen suuntaan niin siitä tulee taas .deb -paketti.  En ole kokeillut vastaavaa .rpm paketille, ei varmaan olisi vaikea   ;)
Otsikko: Vs: fileage --- valitse tiedostoja iän perusteella
Kirjoitti: ajaaskel - 21.11.14 - klo:19.29
Kivasti tuntuu toimivan. Onhan tämmöisissä kamalan iso homma, ei taida kaikki tajuta. Mutta eikö tunnu hyvältä kun saa valmiiksi ?
Tattista.

Hauskaa puuhaa ja näkee mielenkiintoisia juttuja kun ratkoo ongelmat.