¿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 -f
al 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 *-*-*/