technology

Como excluir arquivos com extensões específicas da linha de comando do Linux

.

Excluir arquivos um por um não vale a pena se você tiver um grande número de arquivos com a mesma extensão ou um padrão semelhante de arquivos que precisa remover do sistema.

Você pode economizar muito tempo usando comandos que permitem excluir todos os arquivos que compartilham a mesma extensão ou padrão de uma só vez. Por exemplo, você pode usar um caractere curinga como "^","*","?","[]" Em conjunto com o find e rm comandos para excluir os arquivos que correspondem aos critérios fornecidos.

Portanto, vamos começar este guia removendo alguns dos arquivos usando um caractere curinga.

Remova arquivos usando um caractere curinga no Linux

Como você deve saber, o rm comando aceita um ou mais argumentos para remover arquivos do seu sistema; no entanto, em vez de especificar vários nomes de arquivo, você pode usar caracteres curinga como “^, *,?, []” para remover vários arquivos sem especificar vários nomes de arquivo.

Deixe-me demonstrar como excluir vários arquivos de uma só vez usando um caractere curinga. Se você observar atentamente a imagem abaixo, poderá deduzir que criei vários arquivos com um determinado padrão.

Usando um padrão curinga, remova o arquivo

Invocar o seguinte comando me permitirá excluir apenas o arquivo que contém um caractere extra após “foo_”deixando o restante do arquivo intacto:

$ rm -v foo_*

O comando acima produz o seguinte resultado:

Vários arquivos removidos usando curinga
Vários arquivos removidos usando curinga

Se você quiser que eu remova o “.TXT” arquivo que contém “foo” como uma substring, não importa onde “foo” seja apresentado no nome do arquivo, então preciso acrescentar “*” entre “foo” e fechar com “*”, o que exclui todos os arquivos que têm “foo” em seu nome de arquivo, e para fazer isso, executarei o comando abaixo:

$ rm -v *foo*.txt

E se você quiser que eu lhe dê mais exemplos, que assim seja. Ficarei feliz em fornecer exemplos adicionais se você achar que seria útil.

Vejamos outro exemplo em que usarei o seguinte comando para excluir qualquer arquivo que não comece com “foo” especificando o intervalo entre colchetes:

$ rm -v _*[a-z].txt

Você consegue adivinhar porque eu usei o asterisco

personagem neste padrão?  Se você não entendeu, pergunte-me na seção de comentários e aqui está a saída do comando acima:
Remova o arquivo que não está começando com foo

Remova todos os arquivos que não comecem com foo

Posso brincar mais com o curinga, mas não vou porque é sua hora de brincar com o curinga para remover o arquivo, e uma coisa que eu recomendo que você faça é praticar em um novo diretório para evitar a exclusão de arquivos desnecessários.

  • Também estou incluindo uma pequena folha de dicas com um exemplo para sua conveniência, para que você possa consultá-la quando não tiver certeza de como usar o curinga: ^
  • Excluir da partida *
  • Corresponde a uma ou mais ocorrências ?
  • [] Corresponde a uma única ocorrência

Especifique um intervalo para correspondência

Agora vamos passar para a próxima seção, onde você aprenderá como localizar e excluir recursivamente todos os arquivos de uma extensão específica do diretório atual.

Remova todos os arquivos com arquivos de extensão no Linux

Acima, você aprendeu a remover arquivos com um padrão específico, que exclui o arquivo de acordo com o padrão fornecido, e agora usaremos os mesmos curingas para remover arquivos recursivamente por meio de vários diretórios de uma só vez. find Você vai usar o

comando para esta finalidade, que é um dos meus favoritos porque pode ser usado para encontrar quase tudo usando uma ampla variedade de opções. Como resultado, escrevi um artigo sobre mais de 20 comandos find que você pode usar diariamente, portanto, verifique se deseja aprendê-los.

Para fins de demonstração, criei o diretório e o subdiretório e movi alguns dos arquivos de extensão baseados em PNG para todos os diretórios, conforme mostrado na imagem abaixo.
Mostra o número de arquivos no diretório atual usando o comando tree

Mostre o número de arquivos no diretório atual usando o comando tree -delete E mostrarei como encontrar o arquivo correto e, assim que tiver certeza do resultado, acrescentarei xargs ou find para excluir o resultado, que é a maneira mais segura de excluir arquivos usando o

comando.

$ find . -name "*.png"

Em um terminal, execute o seguinte comando para localizar recursivamente todos os arquivos png do diretório atual e, assim que o comando find localizar o arquivo, ele imprimirá o caminho do arquivo em uma tela:

O seguinte é o resultado do comando acima:
encontrar resultado do comando

encontrar resultado do comando -delete Quando estiver satisfeito com o resultado, você pode adicionar o

$ find . -name "*.png" -delete 

opção para se livrar do arquivo. Depois de executar o comando, o arquivo será removido do seu sistema, por isso é melhor ter cuidado.

$ find . -name "*.png" | xargs rm 

Se o comando acima não funcionar, tente este:

Incrivelmente fácil, certo?

Embrulhar

E com isso, devo adiar. O artigo “Comando Linux rm com sintaxe avançada para Pro” discute alguns dos outros métodos que você pode usar para excluir arquivos do seu computador.

De qualquer forma, se houver algo que eu precise considerar, use o espaço abaixo para fornecer qualquer informação adicional ou feedback.

Um homem com uma tecnologia efusiva que explorou algumas das incríveis coisas da tecnologia e está explorando mais. Enquanto avançava, tive a chance de trabalhar no desenvolvimento Android, Linux, AWS e DevOps com várias ferramentas de código aberto.

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo