“CP: не удалось получить доступ к ‘user@remote/home/file’: Не каталог” при копировании файла по ssh, использовании файла CP синтаксис user@remove

Я пытаюсь скопировать файл от моей машины до моего личного пространства на университетском сервере. На моей машине файл расположен в /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, но это дает мне то же сообщение об ошибке.

Что я делаю неправильно?

6
задан 5 August 2016 в 15:56

2 ответа

Используйте 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/
28
ответ дан 23 November 2019 в 07:13

Некоторые другие способы передать файлы, когда Вы имеете 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, измените путь для удовлетворения потребностей.

14
ответ дан 23 November 2019 в 07:13

Другие вопросы по тегам:

Похожие вопросы: