Создает ли scp целевую папку, если она не существует
Мне интересно, будет ли scp создавать целевую папку, если она не существует на удаленном сервере. Например, будет ли это работать?
scp -r /data/install/somefolder [email protected]:/data/install/somefolder
Здесь папка /data/install/somefolder
не существует на ftp-сервере, так будет ли эта команда создавать ее?
N.B. Я читал о rsync, но я не уверен, как это работает или как его использовать.
Ответы
Ответ 1
Чтобы выполнить задачу с помощью ssh и scp (вместо rsync):
Решение
Давайте разбить на 2 этапа:
1. Создайте каталог, если он отсутствует:
ssh [email protected] "mkdir -p /data/install/somefolder"
2. Скопируйте в него:
scp -r /data/install/somefolder [email protected]:/data/install/somefolder
Положить их вместе
server="[email protected]"
destiny="/data/install/somefolder"
src="/data/install/somefolder"
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny"
Ответ 2
Короткий ответ: нет.
... но rsync делает, поэтому я имею псевдоним scp до rsync -Pravdtze ssh
на моем ящике. Да, это много переключателей, которые в сочетании создают мое предпочтительное поведение rsync. Поскольку rsync действительно предоставляет очень широкий набор переключателей и опций, я предлагаю вам провести некоторое исследование, чтобы узнать, что лучше всего подходит вашим потребностям. Manpage - хорошее место для начала, но есть много информации, которая легко доступна. Здесь достойный список примеров.
Изменить: Собственно, в этом конкретном случае, который вы отправили, будет создана папка, так же как и папка, которую вы копируете. Однако, если вы пытаетесь скопировать его на [email protected]:somenonexistentfolder/somefolder
, это не сработает.