Я использую команду scp для копирования некоторых файлов на удаленный компьютер, как вы делаете с scp :)
Я отмечаю, что стандартным поведением копии scp для файлов является перезапись любых существующих файлов. Теперь я хочу скопировать папку, поэтому я делаю в основном то же самое:
scp -r <source_path> user@myOtherPc:<dest_path>
Где части в <> - мои пути к папкам. Однако, когда я запускаю это, я получаю сообщение «файл существует». Это можно обойти? какая-то сила перезаписать?
Спасибо, Фуддер
-v
, Кроме того, вы используете абсолютный или относительный путь на стороне назначения? Я думаю, что если папка назначения уже существует, она будет создавать исходный путь внутри папки назначения, а не перезаписывать (testdir/testdir
)Ответы:
Как сказано выше, scp с радостью перезаписывает любой файл, который уже присутствует.
Проблема «файл существует» может возникнуть, только если у вас есть какой-то другой процесс (например, параллельный процесс scp или что-то еще), записывающий папки и файлы в то же место. Попробуйте вместо этого использовать rsync.
источник
Как и Леванс, я не смог воспроизвести это, но вы рассматривали возможность использования rsync вместо ssh? Если вы копируете большое количество файлов, лучше использовать rsync, чем scp. В Интернете есть несколько хороших руководств, таких как эти:
http://troy.jdmz.net/rsync/index.html https://calomel.org/rsync_tips.html
Эта первая ссылка имеет дело с автоматическим резервным копированием через cron, поэтому некоторые инструкции (например, создание ключа ssh без ключевой фразы) могут не относиться к вам.
источник
Вы получите это сообщение об ошибке, если каталог назначения уже содержит файл с тем же именем, что и исходный каталог, который вы пытаетесь перенести. Вы не можете иметь файл с тем же именем, что и каталог в том же каталоге.
источник