J'ai un répertoire qui contient environ 3 millions de fichiers dans certains sous-répertoires sur un serveur Windows 2008. Supprimer manuellement les fichiers via SHIFT + DEL dans le répertoire racine prend beaucoup de temps. Existe-t-il un autre moyen d'effectuer la suppression plus rapidement ?
windows
file-management
Cfinley
la source
la source
Réponses:
AVERTISSEMENT: si vous avez des liens symboliques vers des répertoires
del
, les répertoires réels seront supprimés et non les liens symboliques. Soyez très prudent avec cela et ne lancez pas ces commandes sauf si vous savez qu'il n'y a pas de lien symbolique dans le répertoire cible.Je dois régulièrement supprimer un grand nombre de fichiers et de répertoires d'un lecteur crypté WinXP, généralement environ 22 Go sur 500 000 fichiers répartis dans 45 000 dossiers.
La suppression avec l'Explorateur Windows est une foutaise, car elle gaspille beaucoup de temps à énumérer les fichiers. Je déplace généralement les éléments que je dois supprimer vers C: \ stufftodelete et j’ai un fichier de commandes deletestuff.bat
rmdir /s/q C:\stufftodelete
. Ceci est programmé pour fonctionner la nuit, mais parfois je dois le faire pendant le jour afin que le plus vite soit le mieux.Voici les résultats d'un test rapide d'un petit échantillon de 5,85 Mo de 960 fichiers dans 303 dossiers. J'ai exécuté la méthode 1 suivie de la méthode 2, puis j'ai réinitialisé les répertoires de test.
La méthode 1 supprime les fichiers et la structure de répertoires en un seul passage:
La méthode 2 utilise une première passe pour supprimer les fichiers et les sorties à zéro afin d'éviter les frais d'écriture à l'écran pour chaque fichier unique. Une seconde passe nettoie ensuite la structure de répertoires restante:
Voici les résultats d'un autre test utilisant 404 Mo de 19 521 fichiers dans 3 243 dossiers:
Donc, il n'y a pas grand chose dedans, probablement trop près pour juger d'un seul test.
Edit: j'ai retesté avec beaucoup plus de données, c'est un cas typique pour moi: 28,3 Go de 1 159 211 fichiers dans 146 918 dossiers:
Wow, la méthode 2 est presque trois fois plus rapide que la méthode 1! Je mettrai à jour mon fichier deletestuff.bat!
la source
del
, les répertoires réels seront supprimés et non les liens symboliques. Soyez très prudent avec cela et ne lancez pas ces commandes sauf si vous savez qu'il n'y a pas de lien symbolique dans le répertoire cible.Si vous devez supprimer régulièrement des arborescences de répertoires volumineuses, envisagez de stocker la racine de cette arborescence sur une partition distincte, puis formatez-la simplement lorsque vous devez tout supprimer. Si vous avez besoin d'automatiser cela, vous pouvez utiliser cette commande DOS:
où Z: est votre partition 'volatile'. Remarque: la partition ne doit pas avoir d'étiquette. J'ai blogué à ce sujet ici .
la source
Dans l'invite de commande (Démarrer -> Exécuter ->
cmd
):la source
En plus de copier / déplacer des fichiers très rapidement (à l'aide de sa propre API), TeraCopy peut supprimer des fichiers et c'est très rapide aussi. Depuis que j'ai découvert TeraCopy, je n'utilise pas d'ordinateur sans qu'il soit installé (si je vais copier / déplacer / supprimer).
Le même programme d'installation installe l'édition x64 mais pour l'utiliser, vous devez le forcer manuellement.
La version bêta que je recommande par rapport aux versions stables: http://blog.codesector.com/2010/09/22/teracopy-2-2-beta-3/
la source
J'ai fait un fichier chauve-souris qui fait la même chose.
il fait le travail en deux temps, un essaie de supprimer les fichiers. Et le second est d'essayer de s'approprier les fichiers. y devrait être changé selon votre local (stand pour oui en anglais). En cas d'échec de la tâche (par exemple, si échec en raison d'une autorisation), vous devez l'exécuter à nouveau. Cependant, le second tour ne tentera pas de supprimer les fichiers supprimés lors du premier tour, cela pourrait donc être assez rapide.
Comment l'utiliser. Enregistrez sous delfolder.bat dans un chemin d’accès (par exemple, c: \ windows), puis exécutez-le sous
où nomdossier est le nom du dossier
Lors de mon test, la suppression de 123 000 fichiers a pris 3 minutes (7200 tours par minute). YAY!
la source
%1
dans un script, mais"%~1"
. Ainsi, si l'argument a été passé avec des guillemets, il est décoté et recoté. S'il n'a pas été passé avec des guillemets, il est cité.L'utilisation du code ci-dessous fonctionne généralement bien pour moi.
la source
rsync
sous Linux. C'est même ici plus vite alorsrmdir
?del /f/q/s
+rmdir /s/q
. Si votre dir_to_wipe a des problèmes,c:\some_important_dir
vous finirez par perdre vos données.Utilisez la commande rd / s à partir de l'invite de commande.
la source
La meilleure solution pratique consiste probablement à déplacer le dossier quelque part (par exemple, la corbeille), puis à le supprimer. Ça va prendre des siècles, mais au moins, ça sera hors du chemin.
Je suis à peu près sûr que le temps nécessaire pour supprimer tous ces fichiers est une exigence inhérente à la tâche, et non une inefficacité dans la mise en œuvre de la suppression.
la source
Installez Cygwin et utilisez rm -r . Mais cela risque d'être excessif.
la source
rd /q /s
...rm
vraiment aussi rapide que cmd.exerd
? Parce que l’émulation cygwin de l’interface posix est plutôt lente car elle nécessite un travail supplémentaire, celarm
n’apprécie vraiment pas.rm -rf
. Environ 10 minutes plus tard, j’ai abandonné la procédure et y suis retournédel /f/s/q
car, avec Cygwin, l’utilisation du disque n’était que de 50%. Sousdel
, l'utilisation du disque est fixée à 100%. Je pense donc que la suppression doit être plus rapide. L'utilisation du processeur est <1% pour les deux méthodes. Je ne suis pas sûr du numéro de fichier car j'ai fermé le suppresseur de fichiers Windows après 10 minutes de calcul.La génération de noms de fichiers courts est-elle activée? Si oui, en avez-vous vraiment besoin? La suppression d'un fichier n'est qu'une opération de métadonnées. Donc, si vous avez deux fois le nombre de noms à supprimer, la quantité de travail est considérablement plus élevée.
la source
Avez-vous essayé l'une de ces deux applications?
Assurez-vous de définir le nombre de remplacements sur 0 si vous souhaitez obtenir les performances les plus rapides. Pour ce faire, cliquez sur Options, puis modifiez la valeur au bas de la boîte de dialogue.
Entrez le chemin à supprimer dans le champ Source, puis cliquez sur Supprimer.
Ces applications ne mettent pas les fichiers dans la corbeille. Utilisez avec soin.
la source
Ceci est fourni pour compléter et augmenter les étapes effectuées dans les réponses mentionnées précédemment.
Les deux méthodes ci-dessus semblent assez efficaces, mais il serait difficile de déterminer les performances si elles ne sont pas exactement comparées aux mêmes conditions:
Exécutez ensuite les configurations via le fichier de commandes et utilisez l'applet de commande Powershell pour vous connecter et mesurer leurs performances.
Vous trouverez ci-dessous des exemples de dossiers (nommés taille totale) sur lesquels j’ai expérimenté, mais n’ont pas pu obtenir de résultats / performances concluants.
r.bat
rd.bat
Powershell:
la source
La réponse de Hugo est la plus rapide, mais elle ne supprime pas les fichiers cachés ou système lors du premier passage. Si vous souhaitez une solution plus complète, utilisez le paramètre / a:
À propos du fichier BAT de Magallanes , soyez très prudent avec takeown et icacls, car les liens physiques partagent les mêmes autorisations et les mêmes propriétaires. Par conséquent, s'il existe des liens non saturés dans le dossier que vous souhaitez supprimer, l'utilisation de takeown et icacls changera les autorisations et les propriétaires de fichiers extérieurs. le dossier.
À l'aide de l'outil ln.exe, vous pouvez répertorier tous les fichiers liés dans le dossier et savoir s'ils sont liés aux fichiers hors du dossier (liens non saturés):
la source
La suppression de dossier est plus rapide que la suppression de plusieurs fichiers.
Donc, si vous préférez utiliser la souris au lieu de l'invite de commande, vous pouvez créer un répertoire, y déplacer des fichiers et le supprimer (avec Maj + Suppr comme vous l'avez dit).
la source