Comment supprimer récursivement tous les fichiers et répertoires correspondant à un certain modèle? par exemple supprimer tous les répertoires ".svn" et les fichiers qu'ils contiennent?
(Malheureusement, DOS uniquement)
Comment supprimer récursivement tous les fichiers et répertoires correspondant à un certain modèle? par exemple supprimer tous les répertoires ".svn" et les fichiers qu'ils contiennent?
(Malheureusement, DOS uniquement)
Puisque vous êtes à la recherche d'un DOS de solution, la semaine dernière, la poste a été presque identiques et que le consensus était:
pour /d /r . %d dans (.svn) do @si existe "%d", rd /s/q "%d"
ou
for /f "usebackq" %d ("dir .svn /ad/b/s") ne rd /s/q "%d"
En fait, SVN vous donne également la possibilité d'exporter un répertoire de travail sans l' .svn/_svn répertoires.
Après-coups, trois ans plus tard: Je pense que la raison pour laquelle les gens finissent par avoir besoin de supprimer de manière récursive l' .svn/_svn dossiers est parce qu'ils ont directement copié leur copie de travail locale vers un nouvel emplacement dans le but de faire un dossier de comparaison de leur version modifiée par rapport à un nettoyage à l'exportation, c'est à dire après quelque chose va de travers avec de la modification de la copie de travail locale. (Au moins, c'est pourquoi j'en ai eu besoin. Il est certainement plus facile/rapide à utiliser juste 'svn export" lorsque c'est possible.)
Est-ce Unix ou Windows? Sous Unix, une solution simple est
find . -name '.svn' -type d | xargs rm -rf
Cela recherche récursivement tous les répertoires (-type d) de la hiérarchie commençant par "." (répertoire courant), et trouve ceux dont le nom est '.svn'; la liste des répertoires trouvés est ensuite envoyée à rm -rf pour suppression.
Si vous voulez l'essayer, essayez
find . -name '.svn' -type d | xargs echo
Cela devrait vous fournir une liste de tous les répertoires qui seraient supprimés récursivement.
Quelque chose comme ça peut faire l'affaire, mais bien sûr, soyez prudent!
find . -name ".svn" -exec rm -rf {} \;
Essayez d'abord quelque chose comme ça pour faire un essai à sec:
find . -name ".*" -exec echo {} \;
Notez que les accolades vides sont remplies avec les noms de fichier et le point-virgule échappé termine la commande qui est exécutée (en commençant après le "-exec").
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.