Sous un répertoire, j'ai un tas de répertoires nommés Debug
. Comment supprimer tous les répertoires Debug
?
Ce n'est pas clair --- sous le répertoire dir_a
, vous ne pouvez avoir qu'un seul répertoire nommé Debug
. Ou dites-vous que vous avez dir_a/Debug
, dir_a/dir_b/Debug
, dir_a/dir_c/Debug
et ainsi de suite?
Vous pouvez lister tous les répertoires nommés exactement Debug
sous le répertoire dir_a
avec:
cd dir_a # or whatever you need to go there
find . -type d -name Debug
cela listera tous les répertoires nommés Debug
dans le répertoire en cours. Pour les supprimer (vérifiez, ceci N’EST PAS UNDOABLE):
find . -depth -type d -name Debug -exec rm -r {} \;
-depth
listera Debug/Debug/
avant Debug/
pour éviter les erreurs.
En détail:
find . -type d -name Debug
cherchera dans tous les répertoires du répertoire actuel (.
) les deux répertoires (-type d
) portant le nom "Debug" (-name Debug
).
Le drapeau ajouté -depth
lance la recherche en profondeur d'abord (cela signifie que les correspondances "plus profondes" sont trouvées avant les réponses "peu profondes").
-exec ... \;
indique à find
d'exécuter la commande dans ...
pour chaque correspondance. (Le point-virgule est cité car sinon, Shell l'interprétera).
Dans la commande ...
ci-dessus, le symbole spécial {}
est remplacé par la correspondance actuelle.
En clair, c’est: trouvez tous les répertoires sous celui-ci dont le nom est "Debug", commencez par la profondeur, puis exécutez la commande rm -r
suivie du nom complet du répertoire.