Создает ли scp целевую папку, если она не существует

Мне интересно, будет ли scp создавать целевую папку, если она не существует на удаленном сервере. Например, будет ли это работать?

scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder

Здесь папка /data/install/somefolder не существует на ftp-сервере, так будет ли эта команда создавать ее?

N.B. Я читал о rsync, но я не уверен, как это работает или как его использовать.

Чтобы выполнить задачу с помощью ssh и scp (вместо rsync):

Решение

Позволяет разбить на 2 этапа:

1. Создать каталог, если отсутствует:

ssh user@ftpserver.com 'mkdir -p /data/install/somefolder'

2. Скопируйте на него:

scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder

Поместите их вместе

server="user@ftpserver.com"
destiny="/data/install/somefolder"
src="/data/install/somefolder"
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny"
32
ответ дан 06 авг. '14 в 13:12
источник

Короткий ответ: нет.

... но rsync делает, поэтому я имею псевдоним scp до rsync -Pravdtze ssh на моем ящике. Да, это много переключателей, которые в сочетании создают мое предпочтительное поведение rsync. Поскольку rsync действительно предоставляет очень широкий набор переключателей и опций, я предлагаю вам провести некоторое исследование, чтобы узнать, что лучше всего подходит вашим потребностям. Manpage - хорошее место для начала, но есть много информации, которая легко доступна. Здесь достойный список примеров.

Изменить: Собственно, в этом конкретном случае, который вы отправили, будет создана папка, так же как и папка, которую вы копируете. Однако, если вы пытаетесь скопировать его на user@remotehost:somenonexistentfolder/somefolder, это не сработает.

20
ответ дан 16 окт. '12 в 21:23
источник