/bin/rm: Argument list too long
Muchas veces nos encontramos con una larga lista de archivos en algun directorio, y queremos borrarlos a todos, o a ciertos que cumplan un patrón determinado, pero nos encontramos con el mensaje de error ” -bash: /bin/rm: Argument list too long “, que no significa otra cosa, que “la lista es muy larga, no puedo borrar todo eso viteh :p”.
[root@srv456.mocosoft.com:~] ls sess*
sess_5434390c531200bd35a0def5e5d5b38f
sess_543a7e4e15cf6422f8e64a0a5ee06136
sess_543aea761654d024d41d4c1082d22c6d
sess_5458efca777c551e4a9994e334a157e0
sess_5461a8bc0e472f76fdf9f1d510016591
sess_546938d62ce211dfc19b1e617da235e5
sess_5469d837023b1b8ecd6732499da71042
sess_546b64261339674dc860332a6765bf62
sess_5471abd97d9351525857162789f45718
sess_54802fd27e90926e7d76a585693af1e6
sess_5494c9e40e6c47850e77bb0713c26d32
sess_549c5a0d8497ac92c26f33f2d022455a
sess_549ddd211916d2ad4f111cc688924be0
sess_54c08bc1cc68926572ca0536fd074101
sess_54caea5ea31807a49d66ebf4c1066c28
sess_54d8ab4711b9e69913a13385a7d2d509
sess_54f2b787e5455556d10f223646374bc2
sess_55314211bd7c2b23f590dab48b631d11
sess_557f34ab21adf94ff973fd6e9abafe65
sess_5594f27519efecec0597276dee7fac27
sess_55a02d96e95bff62c1027e2707f3b75f
sess_55bf9ceeadf6dfbd675cff3b7e71e04d
sess_55d1371e7db413bbc3ce9c8228dd1e82
[root@srv456.mocosoft.com:~]
[root@srv456.mocosoft.com:~]
[root@srv456.mocosoft.com:~]rm sess_* -f
-bash: /bin/rm: Argument list too long
[root@srv456.mocosoft.com:~]
Pues, he aquí la solución, utilizaremos la excelente ayuda de “for”, indicaremos que para todos los archivos que comiencen con “sess”, ejecute el comando “rm -v -f”, o sea, en otras palabras, que lo borre.. la diferencia entre esto y tratar de borrar todos los archivos de una con “rm sess* -f”, es que estos pueden ser borrados porque los lee y ejecuta el borrado archivo por archivo, aunque como verán, no es para nada tedioso el proceso, dura lo mismo que un rm común.
En fin, este es el comando.. deberán reemplazar “/tmp” por la carpeta donde este la larga lista de archivos a borrar y “sess” por el patrón con el que comienzan los archivos.
[root@srv456.mocosoft.com:~] for i in ls /tmp/sess*; do rm -v $i -f; done