Есть ли способ не переопределять существующие файлы при использовании pscp?

4265
jhast1

Я пытаюсь скопировать файлы из папки на сервере с помощью командного файла. Однако я не хочу, чтобы файлы в папке назначения были переопределены. Вот что у меня есть:

set /p address=ip address: pause pscp -pw "password" "username"@%address%:/folder path/* c:\folderpath 

Это работает, однако, когда он работает, он переопределяет файлы в папке назначения. Есть ли способ заставить его пропустить файлы, которые уже находятся в папке назначения?

2
Смотрите также: http://superuser.com/questions/131801/can-i-make-scp-ask-before-overwriting-an-existing-file, http://aplawrence.com/Basics/no_clobber_scp.html, http : //www.linuxquestions.org/questions/linux-software-2/scp-recurse-but-not-overwrite-56005/ - общее предложение выглядит так: «вместо этого используйте rsync». Другое предложение - использовать scp для переноса во временный каталог и использовать серверный скрипт для копирования без перезаписи. Я полагаю, что было бы также возможно использовать ssh для проверки наличия файлов в клиентском скрипте, но это звучит немного утомительно. Bob 11 лет назад 1
Смотрите также: http://stackoverflow.com/questions/13410990/prevent-overwriting-of-files-when-using-scp - да, еще одно предложение по rsync. Bob 11 лет назад 0

2 ответа на вопрос

1
Kenster

Протокол SCP не очень сложен. Отправляющая сторона может только слепо отправлять файлы и каталоги получателю. Там нет стандартного варианта, чтобы избежать перезаписи файлов в месте назначения.

Вы должны посмотреть на более сложные протоколы передачи, такие как SFTP или rsync, как в комментариях.

0
Camille Goudeseune

TL; DR ответ от этих комментариев:

rsync -e ssh --ignore-existing server.xxx.com:/path/\* /destination/path

Еще лучше, если сервер также поддерживает CIFS («сетевые ресурсы»), используйте это с cp -u.

Похожие вопросы