Qual è il modo più veloce per eliminare una cartella di grandi dimensioni in Windows?


224

Voglio eliminare una cartella che contiene migliaia di file e cartelle. Se uso Windows Explorer per eliminare la cartella, possono essere necessari 10-15 minuti (non sempre, ma spesso). Esiste un modo più veloce in Windows per eliminare le cartelle?

Altri dettagli:

  • Non mi interessa il cestino.
  • È un'unità NTFS.


1
Forse rm -rf in cygwin è più veloce, e forse un cd live di Linux rm -rf è ancora più veloce.
barlop

usando cygwin ls DIRECTORY> list_files e fai un'iterazione sui list_files e usa rm -rf (gestendo un pool di file di grandi dimensioni da 1 TB e funziona bene)
gnuyoga,

Ragazzi, non sono sicuro che questa sia la stessa esperienza di tutti gli altri ... ma se cancello una cartella grande e poi la cancello mentre elimina la cartella non c'è più e il cestino è vuoto. Non sono sicuro del motivo per cui funziona, ma lo fa per me.
Ladieu,

Risposte:


333

Usa il prompt dei comandi di Windows:

rmdir /s /q folder

22
tra l'altro, puoi anche usare rd / q / s <nomeutente>, sebbene questo sia più veloce della rappresentazione grafica all'interno di Windows Explorer, ci vorrà ancora molto tempo - MS usa un algoritmo "Schlemeil the Painter" (joelonsoftware. it / articoli / fog0000000319.html) ogni volta che viene eseguita una dir o del
warren,

37
La cartella rm -rf funziona meravigliosamente velocemente se hai installato Cygwin.
Sinan Ünür,

45
Lo usavo, ma ho trovato una combinazione di del + rmdir quasi tre volte più veloce del semplice rmdir. Vedi la mia risposta: stackoverflow.com/questions/186737/…
Hugo

2
Il suggerimento di Sinan è il più veloce. Installa cygwin.com quindi usa rm -rfv nomeCartella dal prompt dei comandi di cygwin.
Lonnie Best

1
+1 su Cygwin, che crea un link sulla struttura, un po 'più veloce di come lo fa Windows Tools, non altrettanto sicuro.
Tracker1,

975

Il modo peggiore è quello di inviare al cestino: è ancora necessario eliminarli. Il prossimo aspetto peggiore è shift + delete con Windows Explorer: spreca un sacco di tempo a controllare il contenuto prima di iniziare a cancellare qualcosa.

Il prossimo passo è usare rmdir /s/q foldernamedalla riga di comando. del /f/s/q foldernameva anche bene, ma lascia dietro la struttura delle directory.

Il migliore che ho trovato è un file batch a due righe con un primo passaggio per eliminare i file e gli output a zero per evitare il sovraccarico di scrivere sullo schermo per ogni singolo file. Un secondo passaggio quindi pulisce la struttura di directory rimanente:

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

Questo è quasi tre volte più veloce di un singolo rmdir, basato su prove temporali con un disco crittografato di Windows XP, che elimina ~ 30 GB / 1.000.000 di file / 15.000 cartelle: rmdirimpiega ~ 2,5 ore, del+rmdirimpiega ~ 53 minuti. Maggiori informazioni su Super User .

Questa è un'attività normale per me, quindi di solito sposto le cose che devo eliminare in C: \ stufftodelete e ho quei del+rmdircomandi in un file batch deletestuff.bat. Questo è programmato per funzionare di notte, ma a volte ho bisogno di eseguirlo durante il giorno, quindi più veloce è, meglio è.

La documentazione Technet per il delcomando è disponibile qui . Ulteriori informazioni sui parametri utilizzati sopra:

  • /f - Forza (cioè elimina i file anche se sono di sola lettura)
  • /s- Cartelle ricorsive / include sottocartelle (questa definizione da SS64 , poiché technet indica semplicemente "file specificati", il che non è utile).
  • /q - Silenzioso (ovvero non chiedere conferma all'utente)

Documentazione per rmdir qui . I parametri sono:

  • /s - Ricorsivo (ovvero uguale al parametro del's / s)
  • /q - Silenzioso (ovvero uguale al parametro del's / q)

1
Ho provato questo oggi (certamente su un set di dati più piccolo) e ho ottenuto il risultato opposto: usare solo rmdir era il 30% più veloce (3:17) rispetto a usare del e quindi rmdir (2:15).
Harry Johnston,

6
Avevo bisogno di "Esegui come amministratore" per farlo funzionare, a seconda dell'unità.
Eyal,

1
Che ne dici di usare Cygwin. So che è uno strato sopra Windows, ma il mondo di Linux può aiutarci a servire meglio?
sarat,

1
Questo ha funzionato alla grande per me. Ha eliminato circa 16 GB, circa duecentomila file in pochi secondi su Windows 7. Il sistema operativo è rimasto sospeso per un po 'prima che mi arrendessi e cercassi qui.
Engineero,

4
Una soluzione eccellente ed elegante, posso suggerire di semplificare il comando usando la e commerciale shell di comando: Esegui comandi in successione: del /f/s/q foldername > nul & rmdir /s/q foldername oppure Esegui comandi in successione solo se il primo comando ha esito positivo. del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC,

6

usa fastcopy , uno strumento gratuito. ha un'opzione di cancellazione che è molto più veloce del modo in cui Windows elimina i file.


1
Ho provato FastCopy. non sono sicuro che sia più veloce di Windows, ho solo cancellato 92 file / secondo. Considerando che ho rinunciato a contare il numero di file a oltre 250K, mi ci vorrà per sempre usare .. Oh bene. Ogni file ha solo 20 byte. Darn File di sessione PHP.
Chrispix,

1
prova lo strumento gratuito open source RapidDeletePro: github.com/mhisoft/RapidDeletePro
Tony

3

utilizzare il prompt dei comandi, come suggerito. Ho capito perché Explorer è così lento un po 'di tempo fa, ti dà una stima di quanto tempo ci vorrà per eliminare i file / le cartelle. Per fare questo, deve scansionare il numero di articoli e le dimensioni. Questo richiede secoli, quindi l'attesa ridicola con le cartelle di grandi dimensioni.

Inoltre, Explorer si arresterà se si verifica un problema particolare con un file,


3

e per eliminare molte cartelle, è anche possibile creare un file batch con il comando spdenne pubblicato.

1) crea un file di testo con i seguenti contenuti sostituendo i nomi delle cartelle tra virgolette con i nomi delle tue cartelle:

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

2) salva il file batch con estensione .bat (ad esempio deletefiles.bat)
3) apri un prompt dei comandi (Start> Esegui> Cmd) ed esegui il file batch. puoi farlo in questo modo dal prompt dei comandi (sostituendo X per la tua lettera di unità):

X:  
deletefiles.bat

2
Sì, ho un file batch simile, ma ho trovato una combinazione di del + rmdir il più veloce: stackoverflow.com/questions/186737/…
Hugo

-1

Prova Shift+ Delete. Ho fatto 24.000 file in 2 minuti per me.


13
Vedi sopra: evita il cestino ma è ancora più lento della riga di comando.
andig

1
Questo metodo eliminerà i file direttamente invece di spostarli nel cestino, ma l'esploratore proverà comunque a contare tutti i file per ottenere una stima, che richiede anni per le cartelle di grandi dimensioni (>
100.000

qual era la dimensione media del file?
your_boy_gorja,

@your_boy_gorja il problema non è la dimensione media dei file ma la quantità di file in una cartella. Quando si elimina da Explorer, Explorer deve leggere tutti i file per ottenere le dimensioni e provare a fare una stima
Vinicius Monteiro

@uceumern sì, questa cosa che conta è ridicola con una cartella con molti, molti file (~ 40GB con 1m + file)
Brian Leishman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.