Duminica, ca de obicei, m-am apucat să fac un pic de curățenie pe serverele pe care le administrez.
Pe un server de mail aveam salvate pe disc în fișiere mail-urile marcate ca și spam și care nu au fost livrate în mailbox la utilizatori.
Cum aceste fișiere îmi ocupau spațiul degeaba, am zis să le sterg frumos cu:
rm –f spam-*
Aici am avut o supriză, sistemul mi-a răspuns la comandă cu următorul mesaj:
-su: /bin/rm: Argument list too long
Minunat. Să vedem câte fișiere al căror nume începe cu “spam-“ sunt de fapt în acest director:
ls -l | grep spam | wc -l
103930
Hmm.. Prea multe pentru comanda rm.
O soluție ar fi fost să sterg întreg directorul, dar nu asta voiam. Ca să îmi rezolv problema am apelat la un artificiu, și anume execuția comenzii:
find . -name ‘spam-*’ | xargs rm
A funcționat de minune. O altă soluție ca să sterg toate fișierele din acest director, indiferent de numele lor ar fi fost:
ls | xargs rm
Câteva resurse care m-au ajutat:
Comanda find - FreeBSD man page
Comanda rm – FreeBSD man page
Comanda xargs – FreeBSD man pages
Articole asemanatoare:
- Primii pasi in lumea FreeBSD-ului
- Exemplu: cum se încalcă Constituția
- ZTE ZXR 10 2609
- Au apărut
- FreeBSD–Server FTP cu SSL/TLS si utilizatori virtuali
- Allied Telesis AT-8000S/16
- Hotel Diana de la Sâmbăta de Sus
- FreeBSD – Montarea unui director partajat in retea
- Atenționare automată prin apel vocal
- Pe timp de criză SPAM-ul înflorește
find . -name spam-* -exec rm -rf {} \;