Как я могу заставить команду scp перезаписать папку назначения

Я использую команду scp, чтобы скопировать некоторые файлы на удаленный компьютер, как вы делаете с scp:)

замечу, что по умолчанию поведение УПП копирования является перезапись существующих файлов. Теперь я хочу скопировать папку, поэтому я делаю в основном то же самое:

scp -r <source_path> user@myOtherPc:<dest_path>

, где в мои пути к папкам. Однако, когда я запускаю это, я получаю сообщение "файл существует". Есть ли способ обойти это? какая-то сила переписывает?

спасибо,
Корм

5
задан code_fodder
источник

3 ответов

Как было сказано ранее, scp с радостью перезаписывает любой файл, который уже присутствует.

проблема "файл существует" может возникнуть только тогда, когда у вас есть какой-то другой процесс (например, параллельный процесс scp или что-то еще) записи папок и файлов в том же месте назначения. Рассмотрите возможность использования rsync.

19
отвечен nicolasochem 2015-12-01 23:42:14
источник

Как и Леванс, я не смог воспроизвести это, но вы рассматривали возможность использования rsync через ssh? Если вы копируете большое количество файлов, rsync может быть лучшим вариантом, чем scp. Есть целый ряд хороших руководств к нему в интернете, такие как:

http://troy.jdmz.net/rsync/index.html https://calomel.org/rsync_tips.html

эта первая ссылка имеет дело с автоматическими резервными копиями через cron, поэтому некоторые инструкции (например, создание ключ ssh без парольной фразы) может не иметь отношения к вам.

4
отвечен Ben 2013-09-24 00:41:49
источник

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

3
отвечен EvR2f 2017-11-02 08:37:41
источник

Другие вопросы bash scp ssh