Excluindo todos os arquivos com nomes de arquivos que correspondam a um padrão e tamanho abaixo de um determinado limite

1

Preciso excluir todos os arquivos com uma expansão .avi e cujo tamanho esteja abaixo de 100MB . Eu tenho uma grande coleção de arquivos de vídeo e preciso excluir os curtos para liberar algum espaço. Como faço isso?

    
por Chintan 29.10.2014 / 07:30

1 resposta

4

Use o comando find :

find /path/to/ -name '*.avi' -type f -size -100M -delete

Detalhes:

  • /path/to/

    Isso diz ao find para procurar por arquivos no diretório /path/to/ e em todos os seus subdiretórios. Se você quiser iniciar a partir do diretório atual, use . .

  • -name '*.avi'

    Isso diz ao find para procurar apenas os arquivos cujos nomes terminam em .avi

  • -type f

    Isso diz ao find para procurar apenas por arquivos regulares. Isso exclui diretórios, pipes, soquetes, etc.

  • -size -100M

    Isso diz ao find para procurar apenas por arquivos menores que 100MB. Se você quiser excluir arquivos maiores que 100 MB, use +100M .

  • -delete

    Isso diz a find para excluir os arquivos que correspondem aos critérios acima.

Por segurança, na primeira vez que você tentar este comando, deixe o -delete . Isso retornará uma lista de arquivos encontrados:

    find /path/to/ -name '*.avi' -type f -size -100M

Se os arquivos encontrados forem os que você deseja excluir, adicione de volta -delete .

Pesquisando apenas o diretório atual e não seus subdiretórios

Para limitar a busca de recursão em subdiretórios, use a opção -maxdepth :

find /path/to/ -maxdepth 1 -name '*.avi' -type f -size -100M -delete

Para executar o acima no diretório atual:

find . -maxdepth 1 -name '*.avi' -type f -size -100M -delete
    
por John1024 29.10.2014 / 07:40