“cp: falha ao acessar‘ usuário @ remoto / home / arquivo ’: Não é um diretório” ao copiar um arquivo sobre ssh, usando o usuário cp user @ remove syntax

6

Estou tentando copiar um arquivo da minha máquina para o meu espaço pessoal em um servidor universitário. Na minha máquina, o arquivo está localizado em /home/karnivaurus/file.pdf .

Se eu me conectar ao servidor com ssh [email protected] e, em seguida, executar pwd , ele imprime /homes/karnivaurus . Se eu executar ls , ele exibe apenas um diretório, foo . O que eu quero fazer é copiar esse arquivo para o diretório /homes/karnivaurus/foo .

Então, depois de sair do ssh, eu entro no diretório home local /home/karnivaurus . Em seguida, executo o comando cp paper.pdf [email protected]/foo/paper.pdf , mas isso retorna a mensagem de erro cp: failed to access ‘[email protected]/homes/karnivaurus/paper.pdf’: Not a directory . Eu também tentei executar cp paper.pdf [email protected]/homes/karnivaurus/foo/paper.pdf , mas isso me dá a mesma mensagem de erro.

O que estou fazendo de errado?

    
por Karnivaurus 05.08.2016 / 16:34

2 respostas

28

Use 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).

A sintaxe básica é essencialmente a mesma que a de cp

scp paper.pdf [email protected]:/homes/karnivaurus/foo/

ou

scp paper.pdf [email protected]:~/foo/
    
por steeldriver 05.08.2016 / 16:41
14

Algumas outras maneiras de transferir arquivos quando você tem ssh access:

  • rsync :

    rsync -av paper.pdf [email protected]:/where/to/put/
    

    substitua /where/to/put/ pelo nome do diretório desejado, ele também pode ser um nome de arquivo se você quiser renomear o arquivo no host remoto, considerando os diretórios intermediários.

    rsync tem uma grande vantagem sobre scp que usa o algoritmo de transferência delta, portanto, se por algum motivo a transferência parar no meio, você poderá retomar a transferência desse local novamente usando rsync .

  • Direta ssh :

    ssh [email protected] 'cat >/where/to/put/paper.pdf' <paper.pdf
    

    Aqui transferindo o arquivo com ssh direto, enviando o arquivo de entrada em STDIN de ssh , que é encaminhado para o comando remoto e executando o comando cat >/where/to/put/paper.pdf no host remoto. Após a operação, o arquivo estará disponível como /where/to/put/paper.pdf on server.uni.ac.uk , altere o caminho para atender sua necessidade.

por heemayl 05.08.2016 / 18:55

Tags