FreeBSD – limitari argumente comanda rm

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:

One thought on “FreeBSD – limitari argumente comanda rm

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Info

Blogul folosește cookie-uri pentru numărarea vizitatorilor, comentarii mai rapide și alte îmbunătățiri. Nu colectez date personale în afara celor fără de care serverul și blogul nu pot funcționa. Prin continuarea folosirii acestui site, sunteti de acord cu

politica de confidentțalitate