Apenas para detalhar a resposta do Simon, rsync
é a ferramenta perfeita para o trabalho:
Rsync is a fast and extraordinarily versatile file copying
tool. It can copy locally, to/from another host over any
remote shell, or to/from a remote rsync daemon. It offers a
large number of options that control every aspect of its
behavior and permit very flexible specification of the set of
files to be copied. It is famous for its delta-transfer algo‐
rithm, which reduces the amount of data sent over the network
by sending only the differences between the source files and
the existing files in the destination. Rsync is widely used
for backups and mirroring and as an improved copy command for
everyday use.
Supondo que você tenha acesso ssh à máquina remota, você gostaria de fazer algo assim:
rsync -hrtplu path/to/local/foo [email protected]:/path/to/remote/bar
Isso copiará o diretório path/to/local/foo
para /path/to/remote/bar
no servidor remoto. Um novo subdiretório chamado bar/foo
será criado. Se você quiser apenas copiar o conteúdo de um diretório, sem criar um diretório com esse nome no destino, adicione uma barra:
rsync -hrtplu path/to/local/foo/ [email protected]:/path/to/remote/bar
Isso copiará o conteúdo de foo/
no diretório remoto bar/
.
Algumas opções relevantes:
-h, output numbers in a human-readable format
-r recurse into directories
-t, --times preserve modification times
-p, --perms preserve permissions
-l, --links copy symlinks as symlinks
-u, --update skip files that are newer on the receiver
--delete delete extraneous files from dest dirs
-z, --compress compress file data during the transfer
-C, --cvs-exclude auto-ignore files in the same way CVS does
--progress show progress during transfer
--stats give some file-transfer stats