Ótimo! Rsync é a sua fera e vale bem a curva de aprendizado (há muitas opções). Eu não me incomodaria em me preocupar com seu find modificado nos últimos 2 dias, , já que o rsync irá verificar se há modificações (o que alcança mais ou menos o mesmo, reduz o que é transferido e apenas copia arquivos que foram atualizados em comparação com o destino).
rsync -va srcdir destdir
Eu adicionei o -v apenas para verbosidade para que você possa ver o que está acontecendo. se você estava copiando remotamente (através da internet para um computador remoto), então --progress mostrará progresso durante a cópia de cada arquivo individual.
Se você quiser corresponder exatamente ao seu diretório, por exemplo. Se você quiser que o rsync remova os arquivos no destino que não estão mais na origem (porque eles foram excluídos), isso também é possível com --delete
, mas eu acho que você está criando um arquivo, então eu não usei isso no exemplo.
Outras opções dependem dos seus requisitos específicos (seguir links? etc). Vou deixar isso para você escolher man rsync
Você pode incluir listas de inclusão, listas de exclusão, bem como copiar uma área de desenvolvimento que possa conter arquivos de backup dos editores.
Resumo das opções de arquivamento
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-r recursive
-l copy symbolic links as symbolic links
-p preserve attributes
-t preserve times
-g preserve group
-o preserve owner
-D preserver devices (must be super user to work)
Se você está copiando entre machiens, então é necessário considerar a sincronização de tempo ou a correspondência de tempo difuso, mas você está copiando para o cartão SD em um computador, portanto, não precisa se preocupar.
Se você realmente quiser usar find
, então rsync
poderá obter uma lista de arquivos de um arquivo com --files-from
, caso em que a opção -r (recursiva) do modo de arquivamento não será respeitada.
find . -mtime 2 | rsync -av --files-from - srcdir destdir
Mas, por favor, leia a página de manual, pois --files-from
tem efeitos colaterais e achei que havia muito a ser copiado para essa resposta.
Se o seu destino puder ser atualizado em algum outro lugar, você poderá adicionar
-u, --update skip files that are newer on the receiver