faili nimes numbrite liitmine lahutamine

Üldised linuxiga seotud küsimused, mis ei kuulu teiste foorumite alla

Moderaator: Moderaatorid

Vasta
RiisPeet
Pingviini aktivist
Pingviini aktivist
Postitusi: 134
Liitunud: 16.11.2006, 10:47

faili nimes numbrite liitmine lahutamine

Postitus Postitas RiisPeet »

Teen varukoopia, faili nimeks `date '+%m%d'`koopia.zip.
Soov on panna automaatselt vanu faile kustutama, kuidas ma saan teha käsu
rm `date '+%m%d'`koopia.zip aga %d-st lahutaks 5, st uue koopia tegemisel kustutaks igakordselt viie päeva vanuse koopia?
Kasutaja avatar
DaStoned
Pingviini aktivist
Pingviini aktivist
Postitusi: 395
Liitunud: 11.01.2007, 16:23

Postitus Postitas DaStoned »

Ma olen sellistel juhtudel kasutanud pigem failide nimekirja lugemist ja sealt kustutamist väärivate leidmist.

Näiteks kui mul on kataloogis neli faili mida ma soovin alles hoida ja kõik vanemad kustutada, siis vanemate failide leidmiseks:

$ ls -t *koopia.zip | tail -n +5

Nende kustutamiseks aga

$ for filename in $(ls -t *koopia.zip | tail -n +5); do rm -f "$filename"; done
When the shit hits the fan, keep your mouth shut!
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

Saab ka nii:

Kood: Vali kõik

find /tee/failideni/ -mtime +5 -exec rm {} \;
RiisPeet
Pingviini aktivist
Pingviini aktivist
Postitusi: 134
Liitunud: 16.11.2006, 10:47

Postitus Postitas RiisPeet »

ei taha kataloogist kõiki vanu faile kustutada...
Aga saab vist kuidagi niimoodi:
rm /kataloog/`date '+%m'`$(($2+`date '+%d'`-5))koopia.zip
Pean veel nuputama kuidas üle kuu vahetuse arvutada
Kasutaja avatar
akbgf
Vana Pingviin
Vana Pingviin
Postitusi: 763
Liitunud: 07.10.2009, 09:04

Postitus Postitas akbgf »

RiisPeet kirjutas:ei taha kataloogist kõiki vanu faile kustutada...
Siis ehk aitavad 'grep' ja 'xargs' torus.
Kasutaja avatar
Gomi
Pingviini aktivist
Pingviini aktivist
Postitusi: 182
Liitunud: 24.12.2017, 12:06

Postitus Postitas Gomi »

Kui kõiki vanu faile ei taha kustutada, siis saab obundra find'ile külge pookida ka näiteks -name '*koopia.zip', või midagi uhkemat -regex'iga, kui vaja.
Kasutaja avatar
DaStoned
Pingviini aktivist
Pingviini aktivist
Postitusi: 395
Liitunud: 11.01.2007, 16:23

Postitus Postitas DaStoned »

obundra kirjutas:Saab ka nii:

Kood: Vali kõik

find /tee/failideni/ -mtime +5 -exec rm {} \;
Ahaa, selle peale ma ei tulnud. Iga aastaga ma leian üha rohkem, et find on kõikvõimas.
When the shit hits the fan, keep your mouth shut!
Vasta