Eliminar un conjunto de carpetas que contienen más de un '-' en diferentes lugares como parte de su nombre

Eliminar un conjunto de carpetas que contienen más de un '-' en diferentes lugares como parte de su nombre

¿Cómo puedo eliminar muchas carpetas que tienen más de una -en sus nombres?

Por ejemplo:

e97bf913-5759-4fff-bdaf-2f931b53a432/
39f953c5-dab0-420e-a650-a50a30f48097/

Respuesta1

El patrón

*-*-*/

coincide con directorios con dos o más guiones. Coincide *con cualquier cadena (cero o más caracteres).

Si solo desea hacer coincidir nombres de directorios que no deben comenzar ni terminar con un guión (como en su ejemplo), puede usar

[!-]*-*-*[!-]/

en cambio. Coincide [!-]con cualquier carácter que no sea ( !) un guión.

Correr

ls -d [!-]*-*-*[!-]/

primero para ver si estos son los que desea eliminar. Entonces corre

rm -r [!-]*-*-*[!-]/

para eliminarlos de forma recursiva. Si realmente necesita forzar la eliminación, agréguelo -fal comando.

Respuesta2

rm -r *-*-*-*-*

ADVERTENCIA: Esto eliminará todos los archivos que coincidan con este esquema. Entonces archivos como:

system-file-separated-by-minus 

también será eliminado.

La parte '*' representa todo (cero, uno o varios caracteres) hasta el siguiente, en este caso separado por menos. Si sabe que sus archivos tienen 8 caracteres delante del -, 4 delante del siguiente, puede decir:

rm -r ????????-????-????-????-????????????

Cada ? representa cualquier personaje. Esto eliminaría todos los archivos que coincidan con su esquema. Pero también se eliminarán los archivos que tengan el mismo esquema y que quizás no desees, así que comprueba esto primero.

Respuesta3

Simplemente ejecute este comando en el directorio principal

rm -r *-*-*/

información relacionada