Estou usando o comando scp para copiar alguns arquivos para um PC remoto, como você faz com o scp :)
Observo que o comportamento padrão de uma cópia scp para arquivos é substituir os arquivos existentes. Agora eu quero copiar uma pasta para fazer basicamente a mesma coisa:
scp -r <source_path> user@myOtherPc:<dest_path>
Onde as partes em <> são os caminhos da minha pasta. No entanto, quando executo isso, recebo a mensagem "o arquivo existe". Existe uma maneira de contornar isso? algum tipo de força sobre-escrita?
Obrigado, forragem
-v
. Além disso, você está usando um caminho absoluto ou relativo no lado do destino? Eu acho que se a pasta de destino já existir, ele vai criar o caminho de origem dentro da pasta de destino, em vez de substituir (testdir/testdir
)Respostas:
Como dito anteriormente, o scp substitui alegremente qualquer arquivo que já esteja presente.
O problema "o arquivo existe" pode ocorrer somente quando você tiver algum outro processo (como um processo scp simultâneo ou outra coisa) escrevendo pastas e arquivos no mesmo destino. Considere usar o rsync.
fonte
Como Levans, não consegui replicar isso, mas você já pensou em usar o rsync over ssh? Se você estiver copiando um grande número de arquivos, o rsync pode ser uma opção melhor que o scp. Existem vários bons guias on-line, como estes:
http://troy.jdmz.net/rsync/index.html https://calomel.org/rsync_tips.html
Esse primeiro link lida com backups automatizados via cron, portanto, algumas das instruções (como criar uma chave ssh sem uma senha) podem não ser relevantes para você.
fonte
Você receberá essa mensagem de erro se o diretório de destino já contiver um arquivo com o mesmo nome que o diretório de origem que você está tentando transferir. Você não pode ter um arquivo com o mesmo nome que um diretório no mesmo diretório.
fonte