usando o comando scp para transferir arquivos mantendo os mesmos nomes intactos?

2

Usando o comando scp , quero mover os arquivos do sistema local para um sistema remoto. Eu estou fazendo algo assim:

$ scp file1 root@abc:root /root/tmp

Com esse comando, posso carregar file1 para abc:/root , mas o problema é que ele muda os nomes para tmp , como no meu caso, quero manter o nome igual ao original e basta copiá-lo para a pasta.

Como posso fazer isso?

    
por asadz 10.07.2013 / 23:57

4 respostas

2

Faça isso:

$ scp file1 root@abc:/root/tmp/

Isso também funcionaria:

$ scp file1 root@abc:~/tmp/

Se o diretório /root/tmp não estiver no sistema remoto abc, você poderá fazer isso e o rsync criará o diretório remoto para você:

$ rsync -ave ssh file1 root@abc:/root/tmp

Por fim, se você precisar usar ssh , poderá fazer isso:

$ cat file1 | ssh root@abc "mkdir /root/tmp; cat >> /root/tmp/file1"
    
por 11.07.2013 / 00:36
1

Isso significa que o diretório /root em abc não contém um subdiretório tmp . Mais uma coisa: você está usando um root extra em sua linha de comando. (Deve ser scp file1 root@abc:/root/tmp )

Veja o que você deve fazer:

  • Primeiro, crie o subdiretório obrigatório em abc :

    ssh root@abc 'mkdir /root/tmp'
    
  • Copie o arquivo no subdiretório recém-criado:

    scp file1 root@abc:/root/tmp
    
por 11.07.2013 / 00:09
0

Apenas omita o parâmetro final e o arquivo copiado será /root/file1

scp file1 root@abc:root
    
por 11.07.2013 / 00:06
0

Quando um destino não é seguido por uma barra, ele é interpretado como um novo nome para o arquivo, a menos que essa pasta já exista. Então, ou:

$ scp file1 root@abc:root /root/tmp/

Ou crie o diretório /root/tmp/ e, em seguida:

$ scp file1 root@abc:root /root/tmp
    
por 11.07.2013 / 00:39