32

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

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

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

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

Спасибо, Фоддер

3 ответа3

20

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

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

4

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

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

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

3

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .