В первом случае вы указываете два файла в качестве цели копирования, оба находятся на remote.net . Это явно неоднозначно, так как программа не может определить, куда скопировать файл.
Рассмотрим следующий рабочий пример с указанием двух исходных файлов и одного места назначения (каталога) в одном и том же формате:
scp 'me@example.org:file1 file2' .
Это скопирует и file1 и file2 из example.org в локальный каталог.
Ваша локальная программа scp подключается к удаленному хосту и запускает другой экземпляр scp с параметром, определяющим, переносите ли вы файлы из него (-f) или в него (-t). Это можно увидеть, добавив аргумент -v для подробного вывода. Введенный вами параметр источника / назначения (host:file) разделяется, а часть имен файлов просто добавляется в качестве дополнительных параметров, определяющих файлы для использования.
При использовании его в качестве источника:
debug1: Sending command: scp -v -f -- file1 file2
Это работает без проблем, он передает несколько исходных файлов по сети.
При использовании в качестве раковины:
debug1: Sending command: scp -v -t -- file1 file2
Это не удастся, так как вы собираетесь записать несколько файлов. Теперь можно обойти это имя снова (один раз для локальной оболочки, один раз для удаленного вызова):
$ scp foo 'me@example.org:foo\ bar'
[...]
debug1: Sending command: scp -v -t -- foo\\ bar
И FWIW, scp foo 'me@example.org:"foo bar"' работает так же хорошо.