Comme le souligne une autre réponse, vous pouvez essayer de trouver tous les répertoires portant le nom test
et les supprimer
find -name "test" -type d -delete
J'ai rencontré des problèmes de compatibilité croisée sur Mac, j'ai donc utilisé cette commande équivalente:
find -path "*/test" -type d -delete
- -path : recherche un modèle dans le nom de fichier complet.
Dans les deux cas cependant, si l'un des répertoires nommés test
contient des fichiers, il find
se plaindra de cela Directory is not empty
et ne supprimera pas le répertoire.
Si vous aviez l'intention de supprimer tous les fichiers, y compris le test
répertoire, nous pouvons utiliser la même astuce pour supprimer tous les fichiers dans les répertoires nommés en test
premier.
find -path "*/test/*" -delete
Le modèle "*/test/*"
:, garantira que nous ne supprimons que les fichiers dans un répertoire nommé /test/
. Une fois les répertoires vides, nous pouvons continuer et supprimer les répertoires à l'aide de la première commande:
find -path "*/test" -type d -delete
Exemple:
$ tree
.
├── mytest
│ └── test
│ └── blah.txt
├── test
│ ├── bar.jpg
│ └── dir
│ └── bar.bak
└── testdir
└── baz.c
5 directories, 4 files
$ find -path "*/test" -type d -delete
$ tree
.
├── mytest
│ └── test
├── test
└── testdir
└── baz.c
4 directories, 1 file
$ find -name "test" -type d -delete
$ tree
.
├── mytest
└── testdir
└── baz.c
2 directories, 1 file
+
recherche in. Je n'en avais aucune idée, j'aurais vraiment souhaité l'avoir su il y a longtemps.