1. leht 1-st
faili nimes numbrite liitmine lahutamine
Postitatud: 14.02.2019, 10:25
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?
Postitatud: 14.02.2019, 13:31
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
Postitatud: 14.02.2019, 14:23
Postitas obundra
Saab ka nii:
Kood: Vali kõik
find /tee/failideni/ -mtime +5 -exec rm {} \;
Postitatud: 14.02.2019, 16:32
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
Postitatud: 15.02.2019, 08:25
Postitas akbgf
RiisPeet kirjutas:ei taha kataloogist kõiki vanu faile kustutada...
Siis ehk aitavad 'grep' ja 'xargs' torus.
Postitatud: 15.02.2019, 11:19
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.
Postitatud: 15.02.2019, 12:26
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.