Obviamente, si utilizo el "rm *", da error al segun creo el rm lo que
hace es un "rm file1, file2 .... filen", con lo que al estar limitado
a 32 Kb, hay demasiados archivos.
La Solucion es borrar el directorio entero y luevo volver a crearlo
"rm dir1 -r" y luego un "mkdir dir1", pero no me parece "serio".
Ahora lo que hago es borrar desde el "mc", que no tiene problemas en
borrar mas de 10 mil archivos de una tacada.
No creo que el rm tenga esa limitación.
> Como puedo borrar gran numero de archivos (se trata de la carpeta de
> SPAM, con lo que enseguida se llegan a los varios miles de archivos).
>
> Obviamente, si utilizo el "rm *", da error al segun creo el rm lo que
> hace es un "rm file1, file2 .... filen", con lo que al estar limitado
> a 32 Kb, hay demasiados archivos.
>
> La Solucion es borrar el directorio entero y luevo volver a crearlo
> "rm dir1 -r" y luego un "mkdir dir1", pero no me parece "serio".
Si hace exactamente lo que quieres, ¿qué problema hay?
> Ahora lo que hago es borrar desde el "mc", que no tiene problemas en
> borrar mas de 10 mil archivos de una tacada.
>
> No creo que el rm tenga esa limitación.
Seguramente lo que te está limitando es el espacio dedicado a almacenar
los argumentos de la línea de órdenes.
Una alternativa:
cd directorio_spam && find . -type f -exec rm '{}' \;
Si los nombres de ficheros tienen espacios u otros caracteres raros:
cd directorio_spam && find . -type f -print0 | xargs -0n 100 rm
Más info: find(1) y xargs(1)
Ten mucho cuidado cuando hagas pruebas con find y rm, no te vayas a cargar
algo, especialmente si lo haces como root.
--
Gonzalo Pérez de Olaguer Córdoba <gp...@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C 1302 214F 1934 2861 C704
NO hace lo que quiero, he tenido que buscar una "ñapa", que no me
termina de gustar.
>
> > Ahora lo que hago es borrar desde el "mc", que no tiene problemas en
> > borrar mas de 10 mil archivos de una tacada.
>
> > No creo que el rm tenga esa limitación.
>
> Seguramente lo que te está limitando es el espacio dedicado a almacenar
> los argumentos de la línea de órdenes.
>
> Una alternativa:
>
> cd directorio_spam && find . -type f -exec rm '{}' \;
>
> Si los nombres de ficheros tienen espacios u otros caracteres raros:
>
> cd directorio_spam && find . -type f -print0 | xargs -0n 100 rm
>
> Más info: find(1) y xargs(1)
>
> Ten mucho cuidado cuando hagas pruebas con find y rm, no te vayas a cargar
> algo, especialmente si lo haces como root.
Perfecto, el comando find, ya lo conocia, y alguna vez lo utilizaba
con un for "for i in `find ....`;do .... done, pero el for tambien
fallaba si eran muchos.
lo del xargs lo que hace es hacer un rm fich1, rm fich2, rm fichN,
segun he visto en el man no?
Antes de hacer el rm, utilizo un echo en su lugar, y a ser posible con
rutas completas, asi, evistar los sustos de estar en el directorio
equivocado:
find /ruta/al/directorio_spam -type -f -print0 | xargs -0n 100 echo
[...]
: No creo que el rm tenga esa limitación.
No, es mas bien limitacion del sistema operativo.
Hay muchas soluciones; una de las mas simples puede ser
ls | xargs rm
(si los nombres de fichero no son "raros")
--
PGP and other useless info at \
http://webdiis.unizar.es/~spd/ \
finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/ \ (Virgilio)