borrado de archivos

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Nov 21 21:34:23 CLST 2007


Jose Miguel Vidal Lavin escribió:
> Guillermo O. Burastero escribió:

>>> no funcionó,
>>>
>>> devel:/home/jmvidal# find /media/callcenter/Wavs.old > listado.txt
>>> /media/callcenter/Wavs.old
>>> find: /media/callcenter/Wavs.old: Error de entrada/salida
>>>
>>> probe que al menos hiciera el archivo para despues probar con el
>>> parametro delete pero no funcionó

> mi problema no es de permisos de escritura sino que los argumentos son 
> demaciados para ser procesados

Estas equivocado.  find no trata de procesar todos los archivos de una
sola vez.  Si te fijas el error viene del kernel, "input/output error",
y probablemente tiene que ver con el sistema de archivos (i.e. el smbfs
no está funcionando bien para un directorio con tantos archivos).

Hice un experimento acá: en un directorio "temporal", con este one-liner
creé un millón de archivos:

$ for i in `seq 1 100`; do mkdir $i; pushd $i; for j in `seq 1 10000`; do echo $j; done | xargs touch $j; popd; done

(se demoró su par de minutos)

Efectivamente tengo un millón de archivos, y unos cuantos directorios:
$ find  . | wc -l
1000101

$ find  . -type f | wc -l
1000000

Luego los borré con find, y se demoró como un minuto:

$ time find . -type f -delete

real    0m52.890s
user    0m0.640s
sys     0m29.610s

-- 
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"Cuando miro a alguien, más me atrae cómo cambia que quién es" (J. Binoche)


Más información sobre la lista de distribución Linux