Я искал некоторое время, и я не могу найти определение обычного файла. Мой путь постоянен (я начинаю с /
), и я подключаюсь к
scp root@IP: /path/to/picture.jpg
Результаты в запросе на пароль, а затем ...
scp: .: not a regular file
Обычный файл - это файл, который не является каталогом или более экзотическими видами «специальных» файлов, таких как именованные каналы, устройства, сокеты, двери и т. Д. Символические ссылки также не являются обычными файлами, но они ведут себя как цель, когда приложение обращается к содержимому файла.
Вы передали root@IP:
в качестве источника копии и в /path/to/picture.jpg
качестве места назначения. Источником является домашний каталог пользователя root
на машине IP
. Это полезно в качестве пункта назначения, но не в качестве источника. То, что вы ввели, требуется для копирования каталога в файл; scp
не может скопировать каталог, если вы не запросите рекурсивную копию с -r
параметром (и он откажется перезаписать существующий файл с каталогом, даже если -r
, но он спокойно перезапишет обычный файл, если исходный файл был обычным файлом).
Если /path/to/picture.jpg
это путь на удаленном компьютере файла, который вы хотите скопировать, вам нужно привязать имя файла к спецификации хоста. Это двоеточие, :
которое отделяет имя хоста от удаленного пути. Вам также нужно будет указать пункт назначения.
scp root@IP:/path/to/picture.jpg /some/destination
Если вы хотите скопировать локальный файл /path/to/picture.jpg
на удаленный хост, вам необходимо поменять местами аргументы. Команды копирования Unix ставят источник (источники) первым, а место назначения последним.
scp /path/to/picture.jpg root@IP:
Если вы хотите скопировать удаленный файл /path/to/picture.jpg
в то же место локально, вам нужно повторить путь. Вы можете сделать так, чтобы ваша оболочка повторяла за вас работу (меньше печатания, меньше читаемости).
scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
При копировании каталога вы должны использовать
-r
опцию:источник
синтаксическая проблема - удалить пробел между
а также
источник
scp
.not a regular file
-r
качестве аргумента scp.scp root@IP:/path/to/file /path/to/filedestination
Выше команда копирует файл с удаленного сервера на ваш компьютер. Если вы напечатаете только,
scp root@IP:
он попытается скопировать домашний каталог root (scp users home.
).Так что вам нужно указать точный путь к файлу
источник
Вы получаете эту ошибку, потому что вы пытаетесь скопировать папку, а не файл, и, следовательно, вы должны копировать файлы рекурсивно, используя
-r
опциюИспользуйте команду ниже при копировании файлов с удаленного компьютера на локальный компьютер
ИЛИ ЖЕ
При копировании файлов с локального компьютера на удаленный компьютер
источник
Это будет работать (по крайней мере, на моем Mac)
источник