Como encontrar e excluir arquivos no Linux

Como encontrar e excluir arquivos no Linux
Este tutorial explica como combinar o comando Linux Encontre com outras pessoas para pesquisar e excluir os arquivos com uma única execução de comando.

Depois de ler este tutorial, você saberá como simplificar a tarefa de remover os arquivos no Linux usando diferentes técnicas. Este tutorial é otimizado para usuários novos e experientes, indo direto ao ponto prático e explicando todos os aspectos. Encorajo você a praticar todos os exemplos dados para incorporar este conhecimento. Apenas tenha cuidado com o conteúdo que você exclua.

Este artigo inclui as capturas de tela de cada etapa, facilitando para todos os usuários do Linux aplicá -los.

Encontrar e excluir arquivos no Linux

Esta seção explica as diferentes técnicas para encontrar os arquivos e excluí -los em tempo real com um único comando ou com combinação de comandos.

Para começar, vamos ver o que está no diretório doméstico usando o ls (Lista) comando.

ls

Como você pode ver na figura anterior, existem vários arquivos e diretórios. Entre eles, podemos ver o 1.TXT, 2.TXT e 3.TXT.

Podemos usar o comando de localização seguido pelo tipo de arquivo, o nome do arquivo e o -excluir opção.

Mas no exemplo a seguir, não removeremos um arquivo específico, mas todos os arquivos com o “.txt ”extensão.

encontrar . -tipo f -name "*.txt "-Delete

Onde:

  • encontrar: O comando find é evidentemente usado para pesquisar os arquivos.
  • . (Ponto): O ponto após o comando de encontro especifica que a operação deve ser feita no diretório atual. Nosso caso está no diretório doméstico, portanto, este ponto é igual a /casa/usuário.
  • -Tipo F: Esta opção especifica quais arquivos queremos encontrar. Caso você queira pesquisar nos diretórios, substitua o f por um d.
  • -nome: Esta é a opção de especificar o alvo de arquivo/diretório. Esta opção deve ser digitada antes do nome do arquivo/diretório para defini -lo.
  • “*.TXT": Neste caso em particular, pesquisamos todos os “.arquivos txt ”que especificamos digitando“*.TXT".
  • -excluir: Esta opção instrui o comando encontre para excluir os arquivos encontrados.

Como você pode ver na captura de tela anterior, depois de executar o ls comando novamente, os arquivos txt não aparecem. Eles foram removidos pelo comando previamente executado.

Obviamente, você pode encontrar e excluir os arquivos específicos, como mostrado na figura a seguir, onde arquivo3 é encontrado e removido.

encontrar . -tipo F -Name File3 -Delete

Conforme explicado na lista de comando e opções anteriores, se você deseja remover um diretório em vez de um arquivo, você precisa substituir o f com um d depois de -tipo opção como mostrado na imagem a seguir:

encontrar . -tipo D -Name Dir1 -Delete

Vamos supor que você deseja excluir muitos arquivos cuja primeira parte de seus nomes é a mesma. Na captura de tela a seguir, você pode ver o arquivo1, File2 e arquivo3.

Se você deseja remover todos os arquivos "FILEX", você só precisará substituir a parte dos nomes dos arquivos sem coincidência com o curinga (*), como mostrado no exemplo a seguir:

encontrar . -Tipo F -name "FILE*" -DELETE

Todos os exemplos anteriores explicaram como excluir os arquivos usando o -excluir opção. Esta seção explica como obter o mesmo resultado usando o -exec comando.

A primeira parte do seguinte comando já foi explicada anteriormente. O comando -ex incorporado é usado para aplicar uma ação com base no resultado do comando anterior.

encontrar . -Nome "Algo.log "-exec rm -rf \;

Onde:

  • -EXEC: Instrui para executar um comando posterior após o primeiro comando (encontre) execução.
  • rm -rf: Este comando é usado para forçar a remoção de arquivos e diretórios que correspondem aos nomes fornecidos.
  • "": Isto é o encontrar espaço reservado para o comando, o que significa que ele leva os nomes de arquivo ou diretório dados ao comando find para executar o comando fornecido (depois -exec) neles. No exemplo anterior, rm -rf é aplicado ao espaço reservado que representa o “registro
  • "\;": A barra traseira e o semicolon fecha ou termina o -exec

Agora, vamos ver um novo cenário usando o comando ls novamente. Como você pode ver, existem diferentes “.arquivos txt ”.

Nesse caso, substituiremos o -excluir opção com o -EXEC RM novamente para excluir todos os “.arquivos txt ”como fizemos no segundo exemplo deste documento, mas usando uma técnica diferente.

Você pode ver o comando na terceira linha da figura a seguir. O comando LS anterior mostra os arquivos existentes antes de executar encontrar, E o segundo LS mostra o resultado com todos os “.arquivos txt ”excluídos.

encontrar . -tipo f -name "*.txt "-exec rm -f \;

Agora, vamos criar um novo cenário que você possa ver no exemplo a seguir. Este cenário inclui vários “.txt "e".arquivos c ”.

Vamos supor que você deseja remover os dois .TXT e .c arquivos de uma só vez usando a opção -Delete em vez da opção -exec. Como você pode ver na imagem a seguir, os arquivos de nome estão entre o \ ( e \). Antes do segundo nome do arquivo, temos o -o opção seguida pelo -nome e o segundo nome do arquivo (ou condição neste caso, pois estamos excluindo todos os “.arquivos txt ”). Você pode adicionar o -o -name muitas vezes conforme você precisa, mas lembre -se de que o primeiro -nome não é precedido pelo -o opção.

encontrar . \( -nome "*.C "-o -name"*.txt "\) -Delete

Como você pode ver, ambos .TXT e .c Os arquivos foram removidos com sucesso.

Agora, vamos combinar o comando de localização com o comando XARGS (explicado no final deste tutorial).

No exemplo seguinte, excluímos todos os “.arquivos txt ”usando xargs, onde -EU é o espaço reservado e entre % nós executamos o comando.

Como você pode ver, após a segunda execução do LS, todos .c e .TXT Os arquivos foram removidos.

encontrar *.TXT -TYPE F | Xargs -i % rm " %"

A sintaxe para excluir muitos arquivos é mais fácil com Xargs. No comando seguinte, ambos .c e .TXT Os arquivos são removidos.

encontrar *.TXT *.Tipo C F | Xargs -i % rm " %"

Por fim, vamos supor que você deseja remover os arquivos por data e não pelo nome ou extensão. Nesse caso, o comando find pode identificar o mtime (datas de criação ou arquivo de modificação) dos arquivos e diretórios.

Na imagem a seguir, você pode ver o Dir2 diretório que contém 4 arquivos: arquivo1, File2, arquivo3 e arquivo4. Todos os arquivos dentro do Dir2 foram criados nas últimas 24 horas.

Identificar os arquivos é possível usando o -mtime opção seguida pelo intervalo de tempo dos arquivos. Nesse caso, o -1 a opção indica 1 dia, 24 horas. O -1 significa os arquivos criados ou modificados no último dia, enquanto +1 significa os arquivos criados ou modificados há mais de um dia.

No exemplo a seguir, usamos o comando de encontro com a opção -mtime para remover os arquivos criados ou modificados no último dia.

Encontre dir2 -tipo f -mtime -1 -Delete

XARGS vs -exec

O Xargs O comando quase sempre é implementado com tubos (mas não necessariamente precisam) para usar o primeiro comando como argumento. Ao contrário do Pipe, permite o uso do primeiro comando como um argumento e não apenas como um comando anterior de saída ou antecessor.

O exemplo a seguir nesta seção lista os arquivos e diretórios usando o ls (List) comando e move os arquivos listados para um diretório diferente com MV e Xargs comandos. Este não é o método adequado para mover os arquivos, mas é útil como um exemplo para mostrar como o Xargs Comando funciona.

Primeiro, dê uma olhada no meu Linuxhintdir diretório. Como você pode ver, temos 3 arquivos: arquivo1, File2 e arquivo3.

ls dir1 dir2

Agora, vamos mover todos os arquivos dentro dir1 para Dir2 usando o MV comando.

LS ~/DIR1/* | XARGS MV -T ~/DIR2

Como você pode ver, o resultado ls ~/dir1/* foi passado por Xargs depois de MV comando.

O -exec O comando é semelhante a Xargs. Ele pode executar comandos com base na saída do primeiro comando. Ao contrário de Xargs, -exec executa o comando toda vez que um arquivo corresponde à condição. Se usarmos o comando -exec para remover os arquivos, ele removerá o arquivo por arquivo. Enquanto Xargs executa o comando de uma só vez para todos os arquivos correspondentes. Isto faz Xargs um pouco mais rápido que -exec. Portanto, se você estiver lidando com muitos arquivos, os Xargs seriam convenientes sobre -exec.

Conclusão

Linux tem muitos métodos para alcançar a mesma tarefa. Encontrar e remover os arquivos com um único comando é um conhecimento que qualquer usuário do Linux deve ter independentemente sua experiência. Este tutorial se concentra em encontrar e excluir os arquivos, mas Xargs e -exec podem ser usados ​​com muitos comandos Linux. É importante mencionar que algumas funções estão disponíveis apenas no encontrar versão. A maioria das dicas explicadas é útil para quase todas as distribuições Linux.

Obrigado por ler este tutorial explicando como encontrar e excluir os arquivos no Linux. Continue nos seguindo para mais dicas profissionais.