Excluir conjunto de pastas contém mais de um '-' em locais diferentes como parte de seu nome

Excluir conjunto de pastas contém mais de um '-' em locais diferentes como parte de seu nome

Como posso excluir muitas pastas que possuem mais de uma -em seus nomes?

Por exemplo:

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

Responder1

O padrão

*-*-*/

corresponde a diretórios com dois ou mais hífens. Corresponde *a qualquer string (zero ou mais caracteres).

Se você quiser corresponder apenas nomes de diretórios que não devem começar e terminar com um hífen (como no seu exemplo), você pode usar

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

em vez de. Corresponde [!-]a qualquer caractere que não seja ( !) um hífen.

Correr

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

primeiro para ver se esses são os que você deseja excluir. Então corra

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

para excluí-los recursivamente. Se você realmente precisar forçar a exclusão, adicione -fao comando.

Responder2

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

AVISO: Isso removerá todos os arquivos que correspondam a este esquema. Então, arquivos como:

system-file-separated-by-minus 

também será excluído.

A parte '*' representa tudo (zero, um ou vários caracteres) até o próximo dado, neste caso separado por menos. Se você sabe que seus arquivos têm 8 caracteres antes do -, 4 antes do próximo, você pode dizer:

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

Todo ? representa qualquer personagem. Isso removeria todos os arquivos correspondentes ao seu esquema. Mas também serão excluídos arquivos que tenham o mesmo esquema que você talvez não queira, então verifique isso primeiro.

Responder3

Simplesmente execute este comando no diretório pai

rm -r *-*-*/

informação relacionada