Windows'ta büyük bir klasörü silmenin en hızlı yolu nedir?


224

Binlerce dosya ve klasör içeren bir klasörü silmek istiyorum. Klasörü silmek için Windows Gezgini'ni kullanırsam 10-15 dakika sürebilir (her zaman değil, genellikle). Windows'ta klasörleri silmenin daha hızlı bir yolu var mı?

Diğer detaylar:

  • Geri dönüşüm kutusunu umursamıyorum.
  • Bu bir NTFS sürücüsü.

1
Hugo

1
Belki cygwin'deki rm -rf daha hızlıdır ve belki de linux canlı cd rm -rf daha hızlıdır.
barlop

cygwin ls kullanarak DIRECTORY> list_files ve list_files üzerinden bir yineleme yapın ve rm -rf kullanın (1 TB büyük dosya havuzuyla
uğraşır

Çocuklar, bu herkesin sahip olduğu aynı deneyim olup olmadığından emin değilim ... ama büyük bir klasörü silip klasörü silerken iptal edersem ve geri dönüşüm kutusu boşsa. Bunun neden işe yaradığından emin değilim, ama benim için işe yarıyor.
ladieu

Yanıtlar:


334

Windows Komut İstemi'ni kullanın:

rmdir /s /q folder

22
btw, rd / q / s <klasöradı> da kullanabilirsiniz, ancak bu Windows Gezgini'ndeki grafiksel gösteriden daha hızlı olsa da, uzun zaman alacaktır - MS bir 'Schlemeil the Painter' algoritması (joelonsoftware) kullanır. com / makaleler / fog0000000319.html) her zaman bir dir veya del yapılır
warren

37
Cygwin yüklüyse rm -rf klasörü harika çalışır.
Sinan Ünür

45
Bunu kullanıyordum, ama düz rmdir'den yaklaşık üç kat daha hızlı bir del + rmdir kombinasyonu buldum. Cevabımı gör: stackoverflow.com/questions/186737/…
Hugo

2
Sinan'ın önerisi en hızlısıdır. Yükleme cygwin.com istemi cygwin komutundan rm -rfv Klasöradı kullanmak sonra.
Lonnie Best

1
Yapının bağlantısını kesen Cygwin'de +1, Windows araçlarının nasıl yaptığından biraz daha hızlı, ancak o kadar güvenli değil.
Tracker1

975

En kötü yol, Geri Dönüşüm Kutusu'na göndermektir: yine de silmeniz gerekir. Bir sonraki en kötüsü, Windows Gezgini ile shift + delete: herhangi bir şeyi silmeye başlamadan önce içeriği kontrol etmek için çok zaman harcıyor.

Sonraki en iyi rmdir /s/q foldernamekomut satırından kullanmaktır . del /f/s/q foldernamede iyidir, ancak dizin yapısının arkasında kalır.

Bulduğum en iyi, her tek dosya için ekrana yazma yükünü önlemek için nul için dosyaları ve çıktıları silmek için ilk geçişli iki satırlı bir toplu iş dosyasıdır. İkinci geçiş daha sonra kalan dizin yapısını temizler:

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

Bu, tek bir rmdir'den yaklaşık üç kat daha hızlıdır, Windows XP şifreli diskle yapılan zaman testlerine dayanarak ~ 30GB / 1.000.000 dosya / 15.000 klasör silinir: rmdir~ 2.5 saat del+rmdirsürer, ~ 53 dakika sürer. Super User'da daha fazla bilgi .

Bu benim için normal bir görevdir, bu yüzden genellikle silmem gereken şeyleri C: \ stufftodelete'ye taşıyorum ve bu del+rmdirkomutları bir deletestuff.bat toplu iş dosyasında taşıyorum. Bu gece çalıştırmak için planlanan, ancak bazen gün içinde çalıştırmak gerekir, bu yüzden daha hızlı daha iyi.

delKomut için Technet belgelerini burada bulabilirsiniz . Yukarıda kullanılan parametreler hakkında ek bilgi:

  • /f - Zorla (yani, salt okunur olsalar bile dosyaları silin)
  • /s- Özyinelemeli / Alt Klasörleri Dahil Et ( technet olarak SS64'ten gelen bu tanım basitçe "belirtilen dosyaları" belirtir, bu yardımcı olmaz).
  • /q - Sessiz (yani kullanıcıdan onay istemesi)

rmdir Buraya ait belgeler . Parametreler:

  • /s - Özyinelemeli (yani del's / s parametresiyle aynı)
  • /q - Sessiz (yani del's / q parametresiyle aynı)

1
Bunu bugün denedim (kuşkusuz daha küçük bir veri kümesinde) ve tam tersi bir sonuç elde ettim: sadece rmdir kullanmak del ve sonra rmdir (2:15) kullanmaktan% 30 daha hızlıydı (3:17).
Harry Johnston

6
Ben sürücüye bağlı olarak, bu işe almak için "Yönetici Olarak Çalıştır" gerekiyordu.
Eyal

1
Cygwin kullanmaya ne dersiniz? Windows'un üstünde bir katman olduğunu biliyorum ama linux dünyası daha iyi hizmet vermemize yardımcı olabilir mi?
sarat

1
Bu benim için harika çalıştı. Windows 7'de saniyede birkaç yüz bin dosya olan yaklaşık 16 GB'ı sildi. İşletim sisteminden vazgeçip burada arama yapmadan önce bir süre asılı kaldı.
Engineero

4
Mükemmel ve zarif bir çözüm, komut kabuğu ampersand komutunu kullanarak komutu düzene koymamızı önerebilir miyim: Komutları art arda del /f/s/q foldername > nul & rmdir /s/q foldername çalıştır : veya Komutları yalnızca ilk komut başarılı olduğunda art arda çalıştır. del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC

6

kullanmak FastCopy , ücretsiz bir araç. pencerelerin dosyaları silmesinden çok daha hızlı bir silme seçeneği vardır.


1
FastCopy'yi denedim. pencerelerden daha hızlı olup olmadığından emin değilim, sadece 92 dosya / saniye siliniyordu. Ben 250K üzerinde dosya sayısını saymak vazgeçti göz önüne alındığında, beni kullanmak için her zaman götürecek .. Ah iyi. Her dosya sadece 20 bayt gibidir. Lanet PHP Oturum Dosyaları.
Chrispix

1
açık kaynak kodlu ücretsiz aracı deneyin RapidDeletePro: github.com/mhisoft/RapidDeletePro
Tony

3

önerildiği gibi komut istemini kullanın. Explorer'ın neden bu kadar yavaş olduğunu anladım, size dosyaları / klasörleri silmenin ne kadar süreceğini tahmin ediyor. Bunu yapmak için, öğe sayısını ve boyutunu taraması gerekir. Bu uzun zaman alır, bu nedenle büyük klasörlerle saçma bekler.

Ayrıca, bir dosyada belirli bir sorun varsa explorer duracaktır,


3

ve çok sayıda klasörü silmek için, komut spdenne'in yayınlandığı bir toplu iş dosyası da oluşturabilirsiniz.

1) tırnak içinde klasör adlarını klasör adlarınızla değiştirerek aşağıdaki içeriğe sahip bir metin dosyası oluşturun:

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

2) toplu iş dosyasını bir .bat uzantısıyla kaydedin (örneğin deletefiles.bat)
3) bir komut istemi açın (Başlat> Çalıştır> Cmd) ve toplu iş dosyasını yürütün. bunu komut isteminden yapabilirsiniz (sürücü harfiniz için X yerine):

X:  
deletefiles.bat

2
Evet, benzer bir toplu iş dosyam var, ancak en hızlı del + rmdir kombinasyonunu buldum: stackoverflow.com/questions/186737/…
Hugo

-2

Shift+ ' Yı deneyin Delete. Benim için 2 dakikada 24.000 dosya yaptım.


13
Yukarıya bakınız - geri dönüşüm kutusundan kaçınır, ancak komut satırından çok daha yavaştır.
andig

1
Bu yöntem yerine geri dönüşüm kutusuna taşıyarak doğrudan dosyaları siler, ancak kaşif hala büyük klasörler (> 100k dosyaları) yaş alır bir tahmin, almak için tüm dosyaları saymak için çalışacağız
uceumern

ortalama dosya boyutu neydi?
your_boy_gorja

@ your_boy_gorja sorun ortalama dosya boyutu değil, bir klasördeki dosya miktarıdır. Explorer ile sildiğinizde, Explorer'ın boyutu almak ve bir tahmin yapmaya çalışmak için tüm dosyaları okuması gerekir
Vinicius Monteiro

@uceumern evet yaptığı bu sayma şey çok, çok sayıda dosya (~ 40GB, 1m + dosya ile) ile saçma
Brian Leishman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.