co.de.mon.key

Weblog

RM fail

| Comments

Dziwne, nigdy nie przypuszczałem, że taka podstawowa komenda jak rm może się nie powieść (oczywiście bez szczególnych przypadków jak uprawnienia czy brak pliku … ;) )

quiz:/var/spool/mqueue-client# rm *
-bash: /bin/rm: Lista argumentów za długa

hmmm

quiz:/var/spool/mqueue-client# ls -1 | wc
13625 13625 231625

Trochę ponad 10k plików i się remik gubi.
Powodem był ‘odrobinkę’ nieskonfigurowany sendmail

Rozwiązaniem może być na przykład skorzystanie z xargs, który wykonuje polecenie z argumentami podanymi przez stdin:

quiz:/var/spool/mqueue-client# ls -1 | xargs rm ...
quiz:/var/spool/mqueue-client# ls -1 | wc
0 0 0

Mały test innego sposobu: # for i in `seq 1 13625` ; do echo "666" > $i; done #tworzenie plikow
...
# find . -delete

I co się okazuje:
# time find . -delete

real 0m1.421s
user 0m0.068s
sys 0m1.336s


# time ls -1 | xargs rm

real 0m2.955s
user 0m0.440s
sys 0m2.400s

Podczas sprawdzania zauważyłem, że pliki za pierwszym razem tworzą się odrobinę dłużej.

PS. Niech ktoś coś zrobi z tym certyfikatem …

Comments