¿Cuál es la forma más rápida de eliminar una carpeta grande en Windows?

224

Quiero eliminar una carpeta que contiene miles de archivos y carpetas. Si uso el Explorador de Windows para eliminar la carpeta, puede demorar entre 10 y 15 minutos (no siempre, pero a menudo). ¿Hay una forma más rápida en Windows para eliminar carpetas?

Otros detalles:

  • No me importa la papelera de reciclaje.
  • Es una unidad NTFS.
BrezzaP
fuente
1
También preguntado aquí en Super User: superuser.com/questions/19762/mass-deleting-files-in-windows/…
Hugo
1
Tal vez rm -rf en cygwin sea más rápido, y tal vez un cd rm -rf en vivo de Linux sea aún más rápido.
barlop
usando cygwin ls DIRECTORY> list_files y haga una iteración sobre list_files y use rm -rf (se trata de un grupo de archivos grandes de 1 TB y funciona bien)
gnuyoga
Chicos, no estoy seguro de si esta es la misma experiencia que todos los demás ... pero si elimino una carpeta grande y luego la cancelo mientras se elimina la carpeta y la papelera de reciclaje está vacía. No estoy seguro de por qué esto funciona, pero lo hace para mí.
ladieu

Respuestas:

333

Utilice el símbolo del sistema de Windows:

rmdir /s /q folder
Stephen Denne
fuente
22
por cierto, también puede usar rd / q / s <nombre de carpeta> sin embargo, aunque esto es más rápido que la representación gráfica dentro del Explorador de Windows, todavía tomará mucho tiempo: MS usa un algoritmo 'Schlemeil the Painter' (software joelons. com / articles / fog0000000319.html) cada vez que se realiza un dir o del
warren
37
La carpeta rm -rf funciona maravillosamente rápido si tienes instalado Cygwin.
Sinan Ünür
45
Solía ​​usar esto, pero he encontrado un combo de del + rmdir casi tres veces más rápido que el simple rmdir. Vea mi respuesta: stackoverflow.com/questions/186737/…
Hugo
2
La sugerencia de Sinan es la más rápida. Instale cygwin.com y luego use rm -rfv folderName desde el símbolo del sistema cygwin.
Lonnie Best
1
+1 en Cygwin, que desvinculó la estructura, un poco más rápido que las herramientas de Windows, aunque no es tan seguro.
Rastreador1
975

La peor forma es enviar a la Papelera de reciclaje: aún debe eliminarlos. El siguiente peor es shift + delete con el Explorador de Windows: desperdicia mucho tiempo comprobando el contenido antes de comenzar a eliminar nada.

Lo mejor es usarlo rmdir /s/q foldernamedesde la línea de comandos. del /f/s/q foldernametambién es bueno, pero deja atrás la estructura del directorio.

Lo mejor que he encontrado es un archivo por lotes de dos líneas con una primera pasada para eliminar archivos y salidas a nul para evitar la sobrecarga de escritura en la pantalla para cada archivo único. Una segunda pasada limpia la estructura de directorio restante:

del /f/s/q foldername > nul
rmdir /s/q foldername

Esto es casi tres veces más rápido que un único rmdir, basado en pruebas de tiempo con un disco encriptado de Windows XP, eliminando ~ 30GB / 1,000,000 de archivos / 15,000 carpetas: rmdirtoma ~ 2.5 horas, del+rmdirtoma ~ 53 minutos. Más información en Super User .

Esta es una tarea normal para mí, por lo que generalmente muevo las cosas que necesito eliminar a C: \ stufftodelete y tengo esos del+rmdircomandos en un archivo por lotes deletestuff.bat. Está programado para ejecutarse por la noche, pero a veces necesito ejecutarlo durante el día, así que cuanto más rápido mejor.

La documentación de Technet para el delcomando se puede encontrar aquí . Información adicional sobre los parámetros utilizados anteriormente:

  • /f - Forzar (es decir, eliminar archivos incluso si son de solo lectura)
  • /s- Subcarpetas recursivas / de inclusión (esta definición de SS64 , ya que technet simplemente establece "archivos específicos", lo que no es útil).
  • /q - Silencioso (es decir, no solicite confirmación al usuario)

Documentación para rmdir aquí . Los parámetros son:

  • /s - Recursivo (es decir, igual que el parámetro del's / s)
  • /q - Silencioso (es decir, igual que el parámetro del's / q)
Hugo
fuente
1
Intenté esto hoy (ciertamente en un conjunto de datos más pequeño) y obtuve el resultado opuesto: usar solo rmdir fue un 30% más rápido (3:17) que usar del y luego rmdir (2:15).
Harry Johnston el
66
Necesitaba "Ejecutar como administrador" para que esto funcione, dependiendo de la unidad.
Eyal
1
¿Qué hay de usar Cygwin. Sé que es una capa superior a Windows, pero ¿puede el mundo de Linux ayudarnos a servir mejor?
sarat
1
Esto funciono muy bien para mi. Eliminó unos 16 GB, un par de cientos de miles de archivos en segundos en Windows 7. El sistema operativo se quedó suspendido durante un tiempo antes de que me diera por vencido y buscara aquí.
Engineero el
44
Una solución excelente y elegante, ¿puedo sugerir que optimicemos el comando usando el comando shell ampersand: Ejecutar comandos en sucesión: del /f/s/q foldername > nul & rmdir /s/q foldername o Ejecutar comandos en sucesión solo si el primer comando es exitoso. del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC
6

use fastcopy , una herramienta gratuita. Tiene una opción de eliminación que es mucho más rápida que la forma en que Windows elimina archivos.

Stephen Denne
fuente
1
Probé FastCopy. No estoy seguro si es más rápido que Windows, solo obtenía 92 archivos / segundo eliminados. Teniendo en cuenta que dejé de contar el número de archivos a más de 250K, me llevará usarlo para siempre ... Oh, bueno. Cada archivo es solo como 20 bytes. Malditos archivos de sesión PHP.
Chrispix
1
pruebe la herramienta gratuita de código abierto RapidDeletePro: github.com/mhisoft/RapidDeletePro
Tony
3

use el símbolo del sistema, como se sugiere. Descubrí por qué el explorador es tan lento hace un tiempo, te da una estimación de cuánto tiempo tomará eliminar los archivos / carpetas. Para hacer esto, tiene que escanear el número de artículos y el tamaño. Esto lleva años, de ahí la ridícula espera con carpetas grandes.

Además, el explorador se detendrá si hay un problema particular con un archivo,

nicodemus13
fuente
3

y para eliminar muchas carpetas, también puede crear un archivo por lotes con el comando spdenne publicado.

1) cree un archivo de texto que tenga los siguientes contenidos reemplazando los nombres de las carpetas entre comillas con los nombres de sus carpetas:

rmdir /s /q "My Apps"  
rmdir /s /q "My Documents"  
rmdir /s /q "My Pictures"  
rmdir /s /q "My Work Files"

2) guarde el archivo por lotes con una extensión .bat (por ejemplo, deletefiles.bat)
3) abra un símbolo del sistema (Inicio> Ejecutar> Cmd) y ejecute el archivo por lotes. puede hacerlo así desde el símbolo del sistema (sustituyendo X por su letra de unidad):

X:  
deletefiles.bat
xyz
fuente
2
Sí, tengo un archivo por lotes similar, pero encontré un combo de del + rmdir el más rápido: stackoverflow.com/questions/186737/…
Hugo
-1

Prueba Shift+ Delete. Hice 24,000 archivos en 2 minutos para mí.

jeroen
fuente
13
Ver arriba: evita la papelera de reciclaje, pero sigue siendo mucho más lenta que la línea de comandos.
andig
1
Este método eliminará los archivos directamente en lugar de moverlos a la papelera de reciclaje, pero el explorador aún intentará contar todos los archivos para obtener una estimación, lo que lleva años para carpetas grandes (> 100k archivos)
uceumern
¿Cuál fue el tamaño promedio del archivo?
your_boy_gorja
@your_boy_gorja el problema no es el tamaño promedio de archivo sino la cantidad de archivos en una carpeta. Cuando elimina por Explorer, el Explorer necesita leer todos los archivos para obtener el tamaño e intentar hacer una estimación
Vinicius Monteiro
@uceumern sí, esto que cuenta es ridículo con una carpeta con muchos, muchos archivos (~ 40GB con 1m + archivos)
Brian Leishman