Обнаружена ошибка, связанная с . Кажется, это исправлено в Ubuntu 14.04.5 (openssh 1: 6.6p1-2ubuntu2.8)
Есть объяснение к отчету об ошибке Redhat :
Эта проблема также присутствует в исходном openSSH и появляется, когда вы пытаетесь скопировать что-либо в несуществующий каталог с существующим родительским каталогом . Отсутствует проверка для этого граничного условия. Сообщение об ошибке выдается, когда процесс scp пытается записать в вышеупомянутый файл , но этот файл заканчивается косой чертой (которая интерпретируется для каталога ), и это причина для текущего сообщение об ошибке.
Невозможно воспроизвести (проверено на Ubuntu 14.04.5 LTS и Linux Mint 17)
Если / local / non-existing / directory
не существует, scp
не работает с:
/ local / non-existing / directory: Нет такого файла или каталога
Если существует / local / existing / directory
, scp
копирует файл
в / локальный / существующий / каталог / файл
Если удаленный хост: / путь / к / существующему / файлу
является каталогом, scp
дает сбой:
scp: file: not a regular file
ssh user@remote-host "file /path/to/existing/file"
должно предоставить вам информацию об удаленном файле (или, возможно, каталоге).
file /local/non-existing/directory/
должен предоставить вам информацию о локальном каталоге
mkdir -p /local/non-existing/directory/
будет рекурсивно создать каталог и, если необходимо, любой родительский каталог.
После mkdir -p
, если файл
действительно является файлом, а / local / non-existing / directory /
действительно является каталогом, ваш scp
команда должна работать.