Selecione os arquivos N principais com base na data de modificação e rsync-los

1

Sou relativamente novo no Linux e estou tentando transferir alguns arquivos N com base na Data de modificação .

Eu encontrei este comando ls -tr | head -100 , que, no meu entender, listará os 100 melhores arquivos ( head -100) Baseado na data de modificação ( -t, o mais novo primeiro) mas invertido ( -r inverte a lista, por isso é o mais antigo primeiro agora?) .

Mas, no próximo passo, que é rsync , eu ainda não consigo descobrir se posso usar | ( pipe character) ou & amp; & amp; (e comercial)

então por enquanto eu tenho isso: ls -tr | head -350 | rsync * <remote-host> , mas aparentemente rsync * irá transferir tudo. Então eu estou preso com isso por agora. devo colocar os primeiros 2 comandos no rsync? posso usar o comando awk ?

qualquer ajuda / head-up é bem-vinda.

    
por paacharon3 10.10.2014 / 08:37

2 respostas

0

Você também pode usar o find.

find DIR -maxdepth 1 -type f -newermt DATE -exec rsync {} destination \;

Então, digamos, você deseja rsync arquivos em um diretório específico, sem pastas ou arquivos em pastas no diretório específico de 21 de setembro de 2014 até agora. O comando que você precisará executar é

find /path/to/dir -maxdepth 1 -type f -newermt 20140921 -exec rsync {} destination \;
    
por Nathan Adams 12.10.2014 / 21:25
0

Se você tiver certeza de que os nomes de arquivos não contêm espaços em branco ou caracteres não-ASCII, use

rsync 'ls -tp | grep -v / | head -n <n>' <destination> <options>
    
por Jan 10.10.2014 / 08:52