Header Ads

Como copiar diretórios recursivamente com scp

Um problema comum ao trabalhar com arquivos é aplicar operações recursivamente ou a todos os subdiretórios da pasta inteira. O utilitário scp é usado para transferir arquivos e diretórios para servidores remotos e oferece suporte a operações recursivas.

Executando scp recursivamente

Embora às vezes seja mais rápido fazer grandes transferências em um único arquivo conhecido como tarball, na maioria das vezes a sobrecarga da transferência de arquivos individuais não importa.

Copiar recursivamente com scp é fácil: basta usar o sinalizador -r além de tudo o que você adicionou:

 scp -r localpath usuário @ remoto: / remotepath 

Observe que é -r explicitamente em minúsculas, ao contrário de muitos outros comandos que usam ou exigem -R.

Isso funcionará como um arrastar e soltar em / remotepath /, copiando o conteúdo de localpath / para o remoto e colocando-o em / remotepath / localpath /.

Publicidade

Se, em vez disso, quiser sincronizar localpath / e / remotepath /, você terá que transferir a pasta para a pasta pai de / remotepath /, o destino. Nesse caso, seria /, o diretório raiz.

Isso também seguirá links simbólicos no caminho local ao resolver arquivos, mas não criará necessariamente esses mesmos links no servidor remoto. Por exemplo, copiar um arquivo novo de e para / etc / nginx / sites-enabled não o colocará automaticamente em / etc / nginx / sites-available no remoto.

Usando rsync em vez

O Linux tem várias ferramentas para lidar com esse trabalho, e uma das melhores é o rsync, que faz tudo que o scp pode fazer, mas tem muito mais opções e é muito mais rápido para inicializar. Ele também não copia arquivos que não foram alterados, o que o torna uma ótima ferramenta para “ sincronizar ” dois diretórios um para o outro sem retransferir dados desnecessariamente.

rsync funciona basicamente da mesma forma que scp, com mais algumas opções incluídas para especificar as configurações:

 rsync -a -essh ​​localpath / user @ remote: / remotepath / 

O sinalizador -a especifica o modo de arquivo, que ativa várias opções comumente usadas de uma só vez. O sinalizador -e ssh configura o rsync para transferência por SSH.

RELACIONADO: Como usar rsync para fazer backup de seus dados no Linux

Nenhum comentário