Quais são os comandos equivalentes ao rsync para mv / a / b / c / d?

2

Quais são os comandos rsync equivalentes a mv / a / b / / c / d /, ou seja, mover uma árvore de diretórios de um local para outro, possivelmente em outro sistema de arquivos?

Ou seja, não apenas copiar, mas excluir os arquivos do local original. A razão pela qual eu quero usar rsync é que eu quero ser capaz de retomar um movimento parcial e ser capaz de limitar o uso da largura de banda.

    
por tomsv 30.10.2014 / 10:36

1 resposta

2

Este comando irá sincronizar todos os arquivos de / a / b para / c / d, e preservará permissões, datas de modificação, links simbólicos, e irá recursar para os diretórios, ('-a' ou '--archive' faz tudo é o mesmo que usar '-rlptgoD', que são opções separadas para tudo isso), -v é para verbose e '--remove-source-files' excluirá os arquivos de origem depois de serem totalmente criados no destino .

Se o diretório d dentro de / c / não existir, ele será criado.

rsync -av --remove-source-files /a/b /c/d

Se você deseja mover para o servidor remoto, isso sincronizará com o caminho do servidor remoto, '-z' comprimirá os dados do arquivo durante a transferência.

rsync -avz --remove-source-files /a/b user@hostname_or_ip:/c/d

Diretórios não serão removidos por '--remove-source-files', então você precisa rodar rm -rf / a / b após o rsync para remover todos os diretórios dentro de / a / b /

Em um comando de linha, você pode colocar tudo assim

rsync -av --remove-source-files /a/b /c/d; if find /a/b/ -type f | read; then echo "Not all files were synced"; else rm -rf /a/b; fi

Isso executará o rsync e, em seguida, verificará se ainda existem arquivos, para evitar a exclusão da pasta se alguns arquivos não tiverem sido totalmente sincronizados e, portanto, não tiverem sido excluídos e depois imprimir que nem todos os arquivos foram sincronizados ou excluir pasta se não houver arquivos.

    
por 30.10.2014 / 10:48

Tags