scp
не дуже розумно: коли дано кілька аргументів командного рядка, які є файлами з одного віддаленого хоста, він відкриває нове з'єднання для кожного аргументу.
Ви можете використовувати rsync
замість цього scp
, це розумніший спосіб (та іншими способами).
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
Інший підхід - передавати єдиний аргумент, scp
який описує кілька файлів .
Інший підхід полягає в тому, щоб налаштувати вашу систему так, що вам не доведеться постійно проводити автентифікацію. Переважно, встановіть аутентифікацію ключів , яка в більшості сценарії є і зручнішою, і безпечнішою. Крім того, або, крім того, налаштуйте спільний доступ до з'єднання , так що вам потрібно лише один раз за сеанс аутентифікуватись. У будь-якому випадку, встановіть псевдонім, щоб вам не потрібно було щоразу вказувати ім’я користувача та порт. У вашому ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
Запустіть, ssh -Nf nick
щоб відкрити з'єднання, і тоді всі наступні підключення до nick
накопичувача на існуючому з'єднанні. Тепер ви можете просто бігти
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/