使用 scp 命令传输文件时保持相同的名称不变吗?

使用 scp 命令传输文件时保持相同的名称不变吗?

使用scp命令我想将文件从本地系统移动到远程系统。我正在做这样的事情:

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

使用此命令,我可以上传到file1abc:/root但问题是它会将名称更改tmp为在我的情况下,我想保持名称与原始名称相同,然后将其复制到文件夹中。

我怎样才能做到这一点?

答案1

做这个:

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

这也可以工作:

$ scp file1 root@abc:~/tmp/

如果该目录/root/tmp不在远程系统 abc 上,您可以执行此操作,rsync 将为您创建远程目录:

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

最后,如果你必须使用ssh你可以这样做:

$ cat file1 | ssh root@abc "mkdir /root/tmp; cat >> /root/tmp/file1"

答案2

这意味着/root上的目录abc不包含tmp子目录。另一件事:您root在命令行中使用了额外的内容。 (它应该是scp file1 root@abc:/root/tmp

这是你应该做的:

  • 首先在 上创建所需的子目录abc

    ssh root@abc 'mkdir /root/tmp'
    
  • 然后将文件复制到新创建的子目录中:

    scp file1 root@abc:/root/tmp
    

答案3

只需省略最后一个参数,复制的文件将是/root/file1

scp file1 root@abc:root

答案4

当目标后面没有斜杠时,它将被解释为文件的新名称,除非该文件夹已存在。所以要么:

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

或者创建/root/tmp/目录,然后:

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

相关内容