Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Borrar muchos archivos, y comando rm

2,131 views
Skip to first unread message

An-100

unread,
Mar 8, 2008, 4:23:36 AM3/8/08
to
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".

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.

Gonzalo Pérez de Olaguer Córdoba

unread,
Mar 8, 2008, 5:15:50 AM3/8/08
to
Hola An-100 <jm.jimenez....@gmail.com>
el Sat, 8 Mar 2008 01:23:36 -0800 (PST) escribiste:

> 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

An-100

unread,
Mar 9, 2008, 5:45:50 PM3/9/08
to
On 8 mar, 11:15, Gonzalo Pérez de Olaguer Córdoba <g...@iies.es>
wrote:
> Hola An-100 <jm.jimenez.nospam.u...@gmail.com>

> el Sat, 8 Mar 2008 01:23:36 -0800 (PST) escribiste:
>
> > 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?

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

J.A. Gutierrez

unread,
Mar 10, 2008, 7:48:49 AM3/10/08
to
An-100 <jm.jimenez....@gmail.com> wrote:
: 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).

[...]

: 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)

0 new messages