Como copiar uma estrutura de diretório inteira com um determinado limite de tamanho de arquivo? [duplicado]

0

Por alguns motivos, preciso fazer um clone de dados.

Em que eu preciso copiar toda a estrutura de um diretório enorme, mas eu gostaria apenas de copiar os arquivos que são menores que 1MB (com sua hierarquia inalterada), porque há muitos arquivos temporários gigantes que eu quero evitar clonar.

Quais utilidades ou comandos eu devo usar para atingir esse objetivo?

O comando zip pode realizar essa meta diretamente?

    
por Zen 01.12.2014 / 10:03

1 resposta

4

Existe uma opção --max-size para o rsync, que excluirá arquivos de um determinado tamanho de serem copiados de um diretório para outro. Da página do manual;

--max-size=SIZE
    This tells rsync to avoid transferring any file that is larger than the specified SIZE. The SIZE value can be suffixed with a string to indicate a size multiplier, and may be a fractional value (e.g. lq--max-size=1.5mrq). 
This option is a transfer rule, not an exclude, so it doesn't affect the
    data that goes into the file-lists, and thus it doesn't affect deletions. It just limits the files that the receiver requests to be transferred. 
The suffixes are as follows: lqKrq (or lqKiBrq) is a kibibyte (1024),
    lqMrq (or lqMiBrq) is a mebibyte (1024*1024), and lqGrq (or lqGiBrq) is a gibibyte (1024*1024*1024). If you want the multiplier to be 1000 instead of 1024, use lqKBrq, lqMBrq, or lqGBrq. (Note: lower-case is also accepted for all values.) Finally, if the suffix ends in either lq+1rq or lq-1rq, the value will be offset by one byte in the indicated direction. 
Examples: --max-size=1.5mb-1 is 1499999 bytes, and --max-size=2g+1 is
    2147483649 bytes.
    
por 01.12.2014 / 10:08