Passos para remover arquivos ou diretórios recursivamente no Linux

Como remover arquivos ou diretórios recursivamente no Linux

Com dificuldades para excluir arquivos e diretórios no Linux? Leia este artigo para descobrir os passos para remover recursivamente arquivos e pastas/diretórios no Linux usando o comando rm.

Teste Grátis Teste Grátis
Removeu acidentalmente arquivos importantes em um dispositivo Linux?

Não se preocupe. O Wondershare Recoverit pode ajudar a recuperar seus arquivos perdidos em dispositivos Linux em apenas 3 passos. Este software profissional de recuperação de dados do Linux é totalmente confiável e 100% seguro.

Um diretório pode ter muitos subdiretórios e arquivos dentro dele. A remoção de todos os arquivos e subdiretórios em um diretório pode ser necessária ao trabalhar com o sistema de arquivos Linux. É referido como exclusão recursiva. Use o comando rm para remover recursivamente arquivos ou diretórios (também conhecidos como pastas no Windows) no Linux. O comando rmdir remove apenas diretórios vazios. Este guia apresentará os passos para remover arquivos e diretórios recursivamente no Linux.

Parte 1. Como remover o diretório recursivamente no Linux usando o comando rm

Um resumo da sintaxe do comando rm para remover diretórios/pastas recursivamente:

Sintaxe de comando
Descrição
-f Uma opção forte. Nunca solicita arquivos ou argumentos inexistentes.
-r Remove recursivamente diretórios e seus conteúdos
-v Saída excessiva
rm -- '-dir1' Remove um diretório ou arquivo cujo nome começa com '-'.
rm ./-dir1 O mesmo que antes
rm -rfv 'dir name here' Coloque aspas em torno de seu nome de arquivo/pasta problemática.
rm -rfv \$dirname1 O mesmo que antes

Nos sistemas Linux e Unix, tudo é considerado um arquivo. Em outras palavras, "arquivos" incluem fotos, documentos, diretórios/pastas, SSD/discos rígidos, NIC, dispositivos USB, teclados, impressoras e comunicações de rede.

Exemplos de como excluir uma pasta recursivamente

Neste exemplo, excluiremos a pasta de dados no diretório inicial atual recursivamente:

rm -r /home/vivek/data/

Antes de remover o diretório de dados, o diretório especificado /home/vivek/data/ será esvaziado de todos os subdiretórios, incluindo seus subdiretórios e arquivos. A menos que o -f (forçar) for especificado na linha de comando, o usuário será solicitado a remover todos os arquivos protegidos contra gravação nos diretórios:

rm -rf dirname-here

Como alternativa, você pode usar o comando a seguir:

rm -r -f /path/to/folder/

Para remover uma pasta cujo nome começa com “-," como "-dsaatia”, use um dos seguintes comandos:

rm -rf -- --dsaatia

Você também pode executar o seguinte comando:

rm -rf ./--dsaatia

Para ver saídas detalhadas, podemos usar a opção -v. Em outras palavras, o comando rm no Linux explicará o que acontece com nossos arquivos e pastas. Como um exemplo:

rm -rfv /path/to/dir1
rm -r -f -v /home/vivek/oldpartpics

Excluir pastas com caracteres de nome exclusivos

Suas pastas e arquivos podem conter espaços, ponto e vírgula, barras invertidas e outros caracteres no Linux. Como um exemplo:

ls -l

Suponha que temos uma pasta chamada "Nossos dados de vendas" e "baddir#" ou "dir2 ;#" nele. Então, como nos livramos desses diretórios com nomes incomuns? A solução é direta. Colocaremos o nome do arquivo ou pasta problemático entre aspas. Por exemplo:

rm 'Nossos dados de vendas'
rm -rfv '/path/to/Dir 1 ;'
rm -r -f -v "baddir#"
rm a\ long \dir1 \name

Às vezes, uma barra invertida (\) é necessário antes do metacaractere em seu nome de arquivo ou nome de pasta:

rm \$dir1

remover um diretório ou pasta recursivamente

Parte 2. Como excluir arquivos recursivamente no Linux usando o comando rm

Excluir todos os arquivos recursivamente

Quando usado com o sinalizador -r, o comando rm removerá o conteúdo de todos os tipos de arquivos.

Mas primeiro, usando o comando ls, vamos ver os diretórios iniciais. Neste exemplo, há cinco diretórios: Desktop, dir2, Documents, Downloads e removerecurdir.

ls ~/

use o comando ls

Suponha que queremos excluir o removecurdir e seu conteúdo, incluindo todos os arquivos e subdiretórios. Execute a sintaxe abaixo.

rm -r removerecurdir/

A saída ls mostra o diretório e seu conteúdo foi removido com sucesso.

excluir arquivos recursivamente no linux

Remover arquivos por tamanho recursivamente

Aqui estão os passos para excluir arquivos recursivamente (<10 MB) usando o comando find.

A sintaxe de find é a seguinte:

find <ParentDirectory> -type f -size -<size and units> -exec rm {} +

Você pode usar sudo para acessar os arquivos protegidos no exemplo abaixo.

sudo find /var/log -type f -size -10M -exec rm {} +

O sinal de menos (-) deve ser substituído por um sinal de mais (+).

find <ParentDirectory> -type f -size +<size and units> -exec rm {} +

No exemplo a seguir, usarei a sintaxe anterior para remover arquivos maiores que 1 GB.

find /var/log -type f -size +1G -exec rm {} +

Remover arquivos por extensão recursivamente (tipo de arquivo)

A seção a seguir descreve como excluir arquivos recursivamente por extensão ou tipo de arquivo.

Procure o conteúdo do diretório inicial, chamado testhintcom o comando tree.

tree testhint/

O diretório pai testhint tem um arquivo (file1.txt) e dois subdiretórios: testhint2 tem file3.txt e testhint3 tem file3 e something.txt.

dica de teste do diretório pai

Suponha que você deseja remover todos os arquivos txt recursivamente. A sintaxe é a seguinte:

find <ParentDirectory> -type f -name '*.<Extension>' -print -delete

Em seguida, execute este comando para remover todos os arquivos de texto recursivamente no diretório pai testhint.

find ~/testhint -type f -name '*.txt' -print -delete

Todos os arquivos de texto foram excluídos, deixando apenas o file3 sem extensão.

tree testhint

remover todos os arquivos txt recursivamente

Você também pode excluir arquivos por extensão pelos comandos find junto com exec.

comandos find junto com exec

A sintaxe para remover arquivos por extensão com -exec é a seguinte:

find <ParentDirectory> -type f -name '*.<Extension>' -exec rm -f {} \;

Execute o comando abaixo para remover os arquivos .log.

find ~/testhint -type f -name '*.log' -exec rm -f {} \;

O comando xargs fornece uma solução semelhante. A distinção entre xargs e exec é que exec executa a função rm sempre que um arquivo corresponde à condição. O comando xargs executa o comando rm uma vez para cada arquivo encontrado que corresponda à condição.

Para remover todos os arquivos por extensão usando find e xargs, use a seguinte sintaxe:

find <ParentDirectory> -name "*.<FileExtension>" -print0 | xargs -0 rm

remover extensão usando find e xargs

Digite o comando mostrado abaixo para remover todos os arquivos .c com xargs.

find . -name "*.c" -print0 | xargs -0 rm

Mais uma vez, os arquivos de extensão selecionados foram excluídos com sucesso.

arquivos de extensão selecionados excluídos com sucesso

Excluindo recursivamente todos os arquivos com base em permissões

Vamos dar uma olhada no novo conteúdo no diretório testhint. Quatro arquivos têm acesso total (file2, file3.c, file6.c, e file7).

conteúdo no diretório testhint

Suponha que você deseja localizar e excluir todos os arquivos com permissões totais para todos. A sintaxe é a seguinte:

find <ParentDirectory> -perm <Permissions> -print0 | xargs -0 rm

Execute o comando abaixo para remover todos os arquivos com acesso total para todos os usuários.

find ~/testhint -perm 777 -print0 | xargs -0 rm

remova todos os arquivos com base nas permissões

Excluir arquivos recursivamente com base em seu tempo de modificação ou criação

Execute a seguinte sintaxe:

find ~/testhint -perm 777 -print0 | xargs -0 rm

Se você deseja excluir arquivos criados ou modificados no último dia (últimas 24 horas), use o seguinte comando, onde 1 denota o número de dias e o menos (-) denota arquivos criados ou modificados antes do número definido de dias.

find <Directory> -type f -mtime -1 -delete

Substitua o símbolo de menos por um símbolo de mais para remover arquivos criados ou modificados antes de um dia, antes de 24 horas.

find <Directory> -type f -mtime +1 -delete

Parte 3. O que fazer se você excluiu acidentalmente um arquivo ou pasta no Linux?

No Linux, excluir acidentalmente um arquivo ou pasta pode ser um verdadeiro aborrecimento, mas há ações que você pode tomar para melhorar suas chances de recuperação bem-sucedida:

  • Pare de usar o computador: Para evitar mais perda de dados, pare de usar o computador imediatamente e evite gravar novos dados no disco onde o arquivo excluído estava localizado.
  • Aja rapidamente: Quanto mais você esperar para iniciar o processo de recuperação, maior será o risco de perda permanente de dados.
  • Crie backups regularmente: Backups regulares podem garantir que você tenha uma cópia recente de seus dados importantes em caso de exclusão acidental.
  • Mantenha seu sistema de arquivos em boas condições:A manutenção regular do disco, como verificar erros e corrigi-los, pode ajudar a manter seu sistema de arquivos em boas condições e facilitar a recuperação.

As melhores ferramentas de recuperação de dados do Linux também podem ajudá-lo a recuperar arquivos perdidos ou excluídos. Seguir essas dicas e usar a ferramenta de recuperação de dados correta pode aumentar suas chances de recuperar com sucesso seus arquivos e pastas excluídos no Linux.

Wondershare Recoverit - seu software de recuperação do Linux seguro e confiável

Mais de 5.481.435 de pessoas já baixaram.

Recupera documentos, fotos, vídeos, músicas, e-mails e outros mais de 1.000 tipos de arquivos perdidos ou excluídos de forma eficaz, segura e completa.

Compatível com todas as principais distribuições do Linux, incluindo Ubuntu, Linux Mint, Debian, Fedora, Solus, Opensuse, Manjaro, etc.

Auxilia em mais de 500 cenários de perda de dados, como exclusão, formatação de disco, travamento do sistema operacional, queda de energia, ataque de vírus, partição perdida e muito mais.

A interface simples de apontar e clicar permite recuperar dados de discos rígidos do Linux com apenas alguns cliques.

Funciona através de uma conexão remota. Você pode recuperar dados perdidos mesmo quando seu dispositivo Linux travar.

Conclusão:

Como o Linux é um sistema operacional tão versátil e adaptável, os usuários podem usar recursivamente vários métodos para remover arquivos ou diretórios (ou pastas) no Linux. Todas as alternativas descritas acima se aplicam a quase todas as distribuições do Linux. Além disso, se você excluir arquivos e pastas acidentalmente, existem ferramentas de recuperação de dados disponíveis para Linux.