Como arquivar com ignorar arquivos maiores que 100MB

7

Estou tentando arquivar arquivos com tar e ignorando arquivos maiores que 100MB. Isso é possível?
PS: Não tem que usar tar.

    
por Faruk Uzun 21.02.2012 / 12:43

2 respostas

8

Sim, há provavelmente mais algumas maneiras de fazer isso, mas você provavelmente está melhor com find , pois é muito sintonizável.

find /path/to/dir -size -100M | xargs tar cvf archive.tar

ou

tar cvf archive.tar $(find /path/to/dir -size -100M)

Se houver outros diretórios na pasta atual que você não deseja arquivar, use:

find /path/to/dir -maxdepth 1 -size -100M | xargs tar cvf archive.tar

Pelos comentários abaixo, espaços podem lançar alguns erros, mas no meu teste eles ainda parecem ter sido adicionados ao arquivo ao usar o primeiro método (um pouco estranho em si), mas se você estiver preocupado, você pode corrigir o erro. encontre o comando para substituir espaços por versões com escape.

Como sempre, existem bilhões de maneiras de fazer isso.

find /path/ -size -100M | sed 's/ /\ /g' | xargs tar cvf archive.tar

find /path/ -size -100M -exec echo '"{}"' \; | xargs tar cvf archive.tar
    
por Oli 21.02.2012 / 12:58
0

Apenas exclua os arquivos grandes como este:

tar cf archive.tar / caminho / para / arquivo --excluir-de & lt; (localizar / caminho / para / arquivo -size + 100M)

    
por eshwar 16.02.2016 / 11:13