Я пытаюсь скопировать файл от моей машины до моего личного пространства на университетском сервере. На моей машине файл расположен в /home/karnivaurus/file.pdf
.
Если я соединяюсь с сервером с ssh karnivaurus@server.uni.ac.uk
, и затем выполненный pwd
, это печатает /homes/karnivaurus
. Если я работаю ls
, это просто отображает один каталог, foo
. То, что я хочу сделать затем, должно скопировать этот файл в каталог /homes/karnivaurus/foo
.
Так, после выхода из ssh я ввожу локальный корневой каталог /home/karnivaurus
. Я затем выполняю команду cp paper.pdf karnivaurus@server.uni.ac.uk/foo/paper.pdf
, но это возвращает сообщение об ошибке cp: failed to access ‘karnivaurus@shell1.doc.ic.ac.uk/homes/karnivaurus/paper.pdf’: Not a directory
. Я также попытался работать cp paper.pdf karnivaurus@server.uni.ac.uk/homes/karnivaurus/foo/paper.pdf
, но это дает мне то же сообщение об ошибке.
Что я делаю неправильно?
Используйте scp
DESCRIPTION
scp copies files between hosts on a network. It uses ssh(1) for data
transfer, and uses the same authentication and provides the same security
as ssh(1).
, базовый синтаксис является по существу тем же как базовым синтаксисом cp
scp paper.pdf karnivaurus@server.uni.ac.uk:/homes/karnivaurus/foo/
или
scp paper.pdf karnivaurus@server.uni.ac.uk:~/foo/
Некоторые другие способы передать файлы, когда Вы имеете ssh
доступ:
rsync
:
rsync -av paper.pdf karnivaurus@server.uni.ac.uk:/where/to/put/
замена /where/to/put/
с Вашим желаемым именем каталога это может быть имя файла также, если Вы хотите переименовать файл на удаленном хосте, учитывая промежуточные каталоги, существуют.
rsync
имеет большое преимущество scp
то, что это использует алгоритм передачи дельты, поэтому если по некоторым причинам передача остановилась в середине, можно возобновить передачу от того места снова с помощью rsync
.
Прямой ssh
:
ssh karnivaurus@server.uni.ac.uk 'cat >/where/to/put/paper.pdf' <paper.pdf
Здесь передавая файл с прямым ssh
, отправка входного файла на STDIN ssh
, который передается удаленной команде и выполнению команды cat >/where/to/put/paper.pdf
на удаленном хосте. После операции файл будет доступен как /where/to/put/paper.pdf
на server.uni.ac.uk
, измените путь для удовлетворения потребностей.