Команда SCP для копирования более одного файла с удаленного на удаленный сервер? - PullRequest
0 голосов
/ 30 октября 2019

Я использую эту команду в одной строке, чтобы скопировать папку с именем «myFolder1» с удаленного сервера на удаленный сервер. Работает нормально.

Я запускаю эту команду в терминале myserver2. Это конечный сервер, я имею в виду сервер, на который будет скопирована папка.

scp -r myserver@190.93.133.6:/home/myserver/www/wp-content/plugins/myFolder1 .

Если мне нужно скопировать две папки (вместо одной), мне нужно выполнить команду два раза (по одному для каждогопапка) вот так:

scp -r myserver@190.93.133.6:/home/myserver/www/wp-content/plugins/myFolder1 .


scp -r myserver@190.93.133.6:/home/myserver/www/wp-content/plugins/myFolder2 .

Мой вопрос: Есть ли способ объединить эти две команды в одну командную строку?

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Да, есть. Просто используйте подстановочный знак * и кавычки ".

Вот пример:

scp -r "myserver@190.93.133.6:/home/myserver/www/wp-content/plugins/myFolder*" .

Но вы также можете быть более точным, используя другие подстановочные символы :

scp -r "myserver@190.93.133.6:/home/myserver/www/wp-content/plugins/myFolder{1,2}" .

? Обратите внимание на кавычки, используемые для переноса пути и подстановочного знака.

0 голосов
/ 07 ноября 2019

Самое простое решение:

scp -r myserver@190.93.133.6:/home/myserver/www/wp-content/plugins/myFolder{1,2} .

Звездочка здесь определенно работает, но соответствует более 1 и 2, что может привести к нежелательному результату. Обратите внимание, что {a,b,c,d} работает только на удаленном пути. Поэтому, если вы хотите скопировать данные с локального на удаленный сервер, используйте вместо этого:

scp -r myFolder1 myFolder2 user@host:/path/
...