Como señala otra respuesta, puede intentar encontrar todos los directorios con el nombre testy eliminarlos
find -name "test" -type d -delete
Me encontré con algunos problemas con la compatibilidad cruzada en Mac, así que usé este comando equivalente:
find -path "*/test" -type d -delete
- -path : busca un patrón en el nombre de archivo completo.
Sin embargo, en cualquiera de los casos, si alguno de los directorios nombrados testtiene archivos, findse quejará de eso Directory is not emptyy no eliminará el directorio.
Si pretendía eliminar todos los archivos, incluido el testdirectorio, entonces podemos usar el mismo truco para eliminar todos los archivos dentro de los directorios nombrados testprimero.
find -path "*/test/*" -delete
El patrón: "*/test/*"garantizará que solo eliminemos archivos dentro de un directorio llamado /test/. Una vez que los directorios están vacíos, podemos continuar y eliminar los directorios con el primer comando:
find -path "*/test" -type d -delete
Ejemplo:
$ 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
+en el hallazgo. No tenía idea, definitivamente desearía haberlo sabido hace mucho tiempo.