Excluindo arquivos por meio do terminal em que os arquivos possuem uma determinada palavra-chave

2

UPDATE

O status do processo para o comando rm -rf ~/.local/share/Trash/files/ foi definido como Very High . O comando foi iniciado às 07h45 de hoje e ainda está em execução. Tempo de CPU é atual 53 segundos em 0955, a memória é constante em 52,0 miB. O status fica entre Running e Uninteruptible

Eu abri o nano ontem para olhar apenas para um arquivo e notei que dentro do meu diretório home eu tenho uma quantidade muito grande de arquivos que podem ser deletados. Eles estão lá porque, por algum tempo atrás, eu acidentalmente transformei meu diretório home em um repositório do git. Eu desativei isso, mas quero limpar a bagunça que eu só podia ver ao visualizar a pasta ao procurar um arquivo usando o nano.

Eu tenho esse mesmo problema na minha lixeira, onde eu tenho tantos arquivos nele de bad git repos que eu não posso simplesmente clicar na lixeira e clicar em bin vazio todos os 8 shows mais o swap se esgotar e nada é excluído .

Como posso excluir arquivos do terminal em que os arquivos atendem a um determinado padrão? Eu tentei o seguinte comando:

rm -rf ~/.local/share/Trash/Files/*

rm -rf ~/.local/share/Trash/info/*

e, eventualmente, algum tempo depois recebo uma mensagem de que há apenas muitos arquivos e não é excluída.

Gostaria de excluir todos os arquivos que iniciam ou terminam com algum padrão como .quo ou o que quer que eles sejam. Resumindo:

Como faço para listar todos os arquivos para que eu possa pelo menos começar a encontrar alguns padrões de início ou término para identificar aqueles para exclusão Como faço para usar esse padrão para excluí-los?

    
por MCP_infiltrator 01.05.2014 / 14:27

1 resposta

2

O erro que você está recebendo é porque você tem muitos arquivos, o que significa que * em seu comando rm é expandido para uma lista que é maior que o limite (ARG_MAX ). Então, para contornar isso, você tem várias opções:

  1. Conceda rm apenas alguns dos arquivos:

    rm -rf ~/.local/share/Trash/Files/*.quo
    
  2. Exclua o diretório que contém os arquivos, isso evita listar os arquivos completamente:

    rm -rf ~/.local/share/Trash/Files/
    
  3. Use find :

    find ~/.local/share/Trash/Files/ -delete
    

    ou, para não-GNU find :

    find ~/.local/share/Trash/Files/ -exec rm {} +
    
  4. Use um loop de shell

    for file in  ~/.local/share/Trash/Files/*; do rm "$file"; done
    
por terdon 01.05.2014 / 15:08