使用scp
命令我想将文件从本地系统移动到远程系统。我正在做这样的事情:
$ scp file1 root@abc:root /root/tmp
使用此命令,我可以上传到file1
,abc:/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