Como señala otra respuesta, puede intentar encontrar todos los directorios con el nombre test
y 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 test
tiene archivos, find
se quejará de eso Directory is not empty
y no eliminará el directorio.
Si pretendía eliminar todos los archivos, incluido el test
directorio, entonces podemos usar el mismo truco para eliminar todos los archivos dentro de los directorios nombrados test
primero.
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.