Jaki jest najszybszy sposób usunięcia dużego folderu w systemie Windows?

224

Chcę usunąć folder zawierający tysiące plików i folderów. Jeśli usunę folder za pomocą Eksploratora Windows, może to potrwać 10-15 minut (nie zawsze, ale często). Czy w systemie Windows jest szybszy sposób usuwania folderów?

Inne szczegóły:

  • Nie obchodzi mnie kosz.
  • To dysk NTFS.
BrezzaP
źródło
1
Zapytany również tutaj w Super User: superuser.com/questions/19762/mass-deleting-files-in-windows/…
Hugo
1
Być może rm -rf w cygwin jest szybszy, a może Linux Live CD rm -rf jest jeszcze szybszy.
barlop
przy użyciu Cygwin ls Directory> list_files i zrobić iteracji nad list_files i użyć rm -rf (1TB do czynienia z dużym basenem plików i działa dobrze)
gnuyoga
Chłopaki, nie jestem pewien, czy jest to to samo doświadczenie, co wszyscy inni ... ale jeśli usunę duży folder, a następnie anuluję go, gdy folder jest usuwany, a kosz jest pusty. Nie jestem pewien, dlaczego to działa, ale dla mnie działa.
ladieu

Odpowiedzi:

333

Użyj wiersza polecenia systemu Windows:

rmdir /s /q folder
Stephen Denne
źródło
22
btw, możesz również użyć rd / q / s <nazwa_folderu>, chociaż jest to szybsze niż graficzne przedstawienie w Eksploratorze Windows, to jednak zajmie to dużo czasu - MS używa algorytmu „Schlemeil the Painter” (joelonsoftware. com / artykuły / fog0000000319.html) za każdym razem, gdy skończy się katalog lub del
warren,
37
Folder rm -rf działa cudownie szybko, jeśli masz zainstalowany Cygwin.
Sinan Ünür
45
Kiedyś tego używałem, ale znalazłem kombinację del + rmdir prawie trzy razy szybciej niż zwykły rmdir. Zobacz moją odpowiedź: stackoverflow.com/questions/186737/…
Hugo
2
Sugestia Sinana jest najszybsza. Zainstaluj cygwin.com, a następnie użyj rm -rfv folderName z wiersza polecenia cygwin.
Lonnie Best
1
+1 na Cygwin, który rozłącza strukturę, nieco szybciej niż narzędzia Windows, choć nie tak bezpieczne.
Tracker1
975

Najgorszym sposobem jest wysłanie do Kosza: nadal musisz je usunąć. Kolejne najgorsze to shift + delete w Eksploratorze Windows: marnuje mnóstwo czasu na sprawdzanie zawartości przed rozpoczęciem usuwania czegokolwiek.

Następnym najlepszym rozwiązaniem jest użycie rmdir /s/q foldernamez wiersza poleceń. del /f/s/q foldernamejest również dobry, ale pozostawia strukturę katalogów.

Najlepsze, co znalazłem, to dwuwierszowy plik wsadowy z pierwszym przejściem do usuwania plików i wysyłania do nul, aby uniknąć narzutu pisania na ekranie dla każdego pojedynczego pliku. Drugie przejście usuwa następnie pozostałą strukturę katalogów:

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

Jest to prawie trzy razy szybsze niż pojedynczy rmdir, w oparciu o testy czasowe z zaszyfrowanym dyskiem Windows XP, usuwanie ~ 30 GB / 1 000 000 plików / 15 000 folderów: rmdirzajmuje ~ 2,5 godziny, del+rmdirzajmuje ~ 53 minuty. Więcej informacji na Super User .

Jest to dla mnie normalne zadanie, więc zwykle przenoszę rzeczy, które muszę usunąć, do C: \ stufftodelete i mam te del+rmdirpolecenia w pliku wsadowym deletestuff.bat. To ma działać w nocy, ale czasami muszę go uruchomić w ciągu dnia, więc im szybciej, tym lepiej.

Dokumentacja Technet dla delpolecenia znajduje się tutaj . Dodatkowe informacje na temat parametrów użytych powyżej:

  • /f - Wymuś (tzn. Usuń pliki, nawet jeśli są tylko do odczytu)
  • /s- Rekurencyjne / Uwzględnij podfoldery (ta definicja z SS64 , ponieważ technet po prostu określa „określone pliki”, co nie jest pomocne).
  • /q - Cichy (tzn. Nie pytaj użytkownika o potwierdzenie)

Dokumentacja rmdir tutaj . Parametry to:

  • /s - Rekurencyjny (tj. Taki sam jak parametr del's / s)
  • /q - Cichy (tzn. Taki sam jak parametr del's / q)
Hugo
źródło
1
Próbowałem tego dzisiaj (co prawda na mniejszym zbiorze danych) i uzyskałem odwrotny wynik: użycie samego rmdir było o 30% szybsze (3:17) niż użycie del, a następnie rmdir (2:15).
Harry Johnston,
6
Musiałem „Uruchomić jako administrator”, aby to działało, w zależności od napędu.
Eyal
1
Co powiesz na korzystanie z Cygwin. Wiem, że jest to warstwa na systemie Windows, ale czy świat linux może pomóc nam lepiej służyć?
sarat
1
To zadziałało dla mnie świetnie. Skasował około 16 GB, kilkaset tysięcy plików w sekundach w systemie Windows 7. System operacyjny wisiał na nim przez chwilę, zanim się poddałem i przeszukałem tutaj.
Engineero
4
Doskonałe i eleganckie rozwiązanie, czy mogę zasugerować usprawnienie polecenia za pomocą znaku handlowego ampersand: Uruchamiaj polecenia kolejno: del /f/s/q foldername > nul & rmdir /s/q foldername lub Uruchamiaj polecenia kolejno tylko wtedy, gdy pierwsze polecenie zakończy się powodzeniem. del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC,
6

użyj Fastcopy , darmowego narzędzia. ma opcję usuwania, która jest znacznie szybsza niż sposób, w jaki system Windows usuwa pliki.

Stephen Denne
źródło
1
Próbowałem FastCopy. nie jestem pewien, czy jest szybszy niż Windows, otrzymywałem tylko 92 pliki na sekundę. Biorąc pod uwagę, że zrezygnowałem z liczenia plików w rozmiarze przekraczającym 250 KB, to zajmie mi to na zawsze. No cóż. Każdy plik ma tylko 20 bajtów. Pliki sesji Darn PHP.
Chrispix,
1
wypróbuj darmowe narzędzie open source RapidDeletePro: github.com/mhisoft/RapidDeletePro
Tony
3

użyj wiersza polecenia, zgodnie z sugestią. Zrozumiałem, dlaczego eksplorator jest tak powolny jakiś czas temu, pozwala oszacować, ile czasu zajmie usunięcie plików / folderów. Aby to zrobić, musi zeskanować liczbę elementów i ich rozmiar. To trwa wieki, stąd absurdalne czekanie z dużymi folderami.

Ponadto eksplorator zatrzyma się, jeśli wystąpi określony problem z plikiem,

nicodemus13
źródło
3

i aby usunąć wiele folderów, możesz również utworzyć plik wsadowy z opublikowanym poleceniem spdenne.

1) utwórz plik tekstowy o następującej treści, zastępując nazwy folderów w cudzysłowach nazwami folderów:

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

2) zapisz plik wsadowy z rozszerzeniem .bat (na przykład deletefiles.bat)
3) otwórz wiersz polecenia (Start> Uruchom> Cmd) i uruchom plik wsadowy. możesz to zrobić w wierszu polecenia (zastępując literę X literą dysku):

X:  
deletefiles.bat
xyz
źródło
2
Tak, mam podobny plik wsadowy, ale znalazłem kombinację del + rmdir najszybszy: stackoverflow.com/questions/186737/…
Hugo
-1

Spróbuj Shift+ Delete. Zrobiłem dla mnie 24 000 plików w 2 minuty.

jeroen
źródło
13
Patrz wyżej - unika kosza, ale nadal jest znacznie wolniejszy niż wiersz poleceń.
andig
1
Ta metoda usunie pliki bezpośrednio zamiast przenieść je do kosza, ale eksplorator nadal będzie próbował policzyć wszystkie pliki, aby uzyskać oszacowanie, co zajmuje wieki dla dużych folderów (> 100
000
jaki był średni rozmiar pliku?
your_boy_gorja
@ Your_boy_gorja problemem nie jest średni rozmiar pliku, ale ilość plików w folderze. Po usunięciu przez Eksploratora, Explorer musi odczytać wszystkie pliki, aby uzyskać rozmiar i spróbować oszacować
Vinicius Monteiro
@uceumern tak, ta licząca rzecz jest śmieszna z folderem z wieloma, wieloma plikami (~ 40 GB z 1m + plikami)
Brian Leishman