Exclui todo o diretório que começa com uma string específica

2

Qual comando eu tenho que usar para deletar todos os diretórios que começam com "graphene-80"

O que posso adicionar ao comando "rm" como opção?

    
por Thouraya 07.02.2018 / 15:10

4 respostas

2

Usando o comando :

find /tmp -type d -name 'graphene-80*' -delete

Argumentos utilizados:

  • -type para filtrar apenas o diretório e evitar localizar arquivos
  • -name para encontrar arquivos que correspondam ao padrão definido entre aspas
  • -delete para excluir o resultado do comando find

EDITAR: limpador com -delete como mostrado neste post: Encontre os arquivos correspondentes e remova

    
por 07.02.2018 / 15:17
1

Para excluir os diretórios que correspondem ao padrão graphene-80* diretamente sob /tmp , use

rm -rf /tmp/graphene-80*/

Aqui, o / à direita garante que somente diretórios cujos nomes correspondam ao padrão graphene-80* sejam excluídos, e não arquivos, etc.

Para encontrar os diretórios correspondentes em /tmp e excluí-los onde quer que eles estejam (ou para lidar com o caso em que há muitos nomes correspondentes resultando em um comando muito longo), use

find /tmp -depth -type d -name 'graphene-80*' -prune -exec rm -rf {} ';'

Para ver os nomes dos diretórios à medida que eles são excluídos, insira -print antes de -exec . Inserir -print após -exec imprimirá os nomes dos diretórios com sucesso excluídos.

    
por 07.02.2018 / 15:38
0

Para remover apenas os diretórios vazios com nomes correspondentes a graphene-80* ,

find /tmp -type d -name "graphene-80*" -exec rmdir {} +

ou

find /tmp -type d -name "graphene-80*" -delete

( rmdir e GNU find devem causar erros para os não-vazios).

Para remover os diretórios com seu conteúdo:

find /tmp -type d -name "graphene-80*" -exec rm -r {} \; -prune

(Com -exec rm + você pode obter erros de rm se houver diretórios correspondentes aninhados; e sem -prune , de find desde que ele tente descer para os diretórios recém-removidos.)

    
por 07.02.2018 / 16:59
-2

Você pode usar o seguinte comando:

rm -rf 'find -type d -name folder_name'

Basta substituir o folder_name e você estará pronto.

    
por 24.09.2018 / 21:59