Como deletar todos, exceto um dos arquivos em um diretório

deletar arquivos Linux

Às vezes você precisa remove quase todos os arquivos de um diretório, mas você deseja manter um ou alguns deles. Quando há um grande número deles, ir um por um é uma tarefa tediosa. Não é a melhor opção, existem maneiras de tornar o trabalho no Linux muito mais fácil e você pode eliminar todas as que precisa de uma vez.

Por exemplo, você pode querer remover apenas aqueles que começam com um determinado nome ou aqueles que têm uma extensão específica e assim por diante. Tudo que é possivelNa verdade, em outras ocasiões, já mostrei tutoriais semelhantes no LxA. Aqui você poderá seguir o tutorial passo a passo e de forma simples para poder deletar todos os arquivos que desejar, exceto o que deseja salvar.

E o melhor é que você não precisará instalar nenhum programa, isso pode ser feito facilmente com comandos como rm e find. Ou seja, programas que já estão pré-instalados em qualquer distribuição Linux. E, claro, o método será baseado em encontrar padrões e usar essas correspondências para remover apenas o que você deseja.

Bem, a fim de eliminar lá várias alternativas, que são…

Remova arquivos de um diretório com rm

Bem, para usar o comando rm Para eliminar o que você sente, você deve conhecer antes algumas maneiras de identificar padrões:

  • * (lista de padrões) - corresponde a zero ou mais ocorrências dos padrões especificados
  • ? (lista de padrões) - corresponde a zero ou uma ocorrência dos padrões especificados
  • + (lista de padrões) - corresponde a uma ou mais ocorrências dos padrões especificados
  • @ (lista de padrões) - corresponde a um dos padrões especificados
  • ! (lista de padrões) - corresponde a qualquer coisa, exceto um dos padrões fornecidos

Pára ativar extglob Para usá-los, você deve primeiro executar o seguinte comando:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

olho! Não o especifico, mas presume-se que você tenha permissão para fazer essas operações e que esteja dentro desse diretório ao executar o comando rm. Tenha cuidado com isso, pois se você executá-lo em outro caminho, pode acabar apagando arquivos que não deseja. Ou seja, antes de executar esses comandos, certifique-se de ter inserido o diretório desejado com cd.

Agora você pode usar rm para remover o que quiser. Por exemplo, exclua todos os arquivos de um diretório, exceto aqueles que correspondem ao nome «Lxa»:

rm -v !("lxa")

Você também pode especificar dois ou mais nomes que você não deseja excluir. Por exemplo, para evitar a remoção de "lxa" e "desdelinux":

 rm -v !("lxa"|"desdelinux") 

Você pode excluir todos os arquivos, menos aqueles com extensão .mp3. Por exemplo:

 rm -v !(*.mp3) 

No final, você pode voltar para desabilitar extglob:

 shopt -u extglob 

Remova arquivos de um diretório com encontrar

Outra alternativa para rm é use find para remover tudo o que quiser. Você pode usar um pipe e xargs com rm ou usar a opção -delete para localizar. Ou seja, a sintaxe genérica seria:

find /directory/ -type f -not -name 'PATRÓN' -delete
find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}

Por exemplo, imagine que você quer exclua todos os arquivos em um diretório, exceto aqueles com a extensão .jpg, você pode usar um desses dois comandos, já que ambos obtêm o mesmo resultado:

find . -type f -not -name '*.jpg'-delete

find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}

Em vez disso, se você quisesse adicione algum padrão extra, você também poderia. Por exemplo, suponha que você não queira remover o .pdf ou .odt de um diretório:

find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete

Claro, você pode fazer o mesmo com | e xargs como no exemplo anterior. A propósito, nós usamos - para não negar, mas você pode remover isso para torná-lo positivo, ou seja, remover os padrões correspondentes e não excluí-los.

Exclua arquivos de um diretório usando a variável GLOBIGNORE

Finalmente, existe Outra alternativa para localizar e rm, e está usando uma variável de ambiente para apontar para os arquivos que você deseja remover ou excluir. Por exemplo, imagine que você deseja excluir todos os arquivos de um diretório chamado Downloads, salvando os arquivos .pdf, .mp3 e .mp4. Nesse caso, você pode fazer o seguinte:

cd Descargas
GLOBIGNORE=*.pdf:*.mp4:.*mp3
rm -v *
unset GLOBIGNORE


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.