我想将笔记本电脑中的文件复制到Compute Instance。我可以将文件复制到不存在但在复制期间创建的文件夹吗?
实施例: 我有一个文件index.php,我想将其复制到/ var / www / test 文件夹测试不存在。
当我运行命令时:
gcloud compute copy-files index.php user@instance-1:/var/www/test
它不会给出任何错误。但是,当我进入实例时,它会在/ var / www下显示测试但是
cd /var/www/test
给了我:
-bash: cd: test: Not a directory
如何创建目录然后复制文件?
答案 0 :(得分:1)
这是一组有趣的情况,导致令人惊讶的结果。要了解发生了什么,了解gcloud compute copy-files
命令在封面下运行scp命令是有用的。
在这种情况下,scp命令将/var/www/test
解释为目标路径。由于/var/www
存在,但/var/www/test
不存在,因此它会将test
部分解释为您要在远程计算机上保存的文件的名称。因此,它将index.php
的内容尽职地复制到远程计算机上名为/var/www/test
的文件中。
要获得所需的结果,您应删除该文件(使用rm /var/www/test
),然后创建一个目录(mkdir /var/www/test
)。如果你从一台新机器开始,你可以达到如下所需的结果:
gcloud compute ssh user@instance-1 --command='mkdir /var/www/test'
gcloud compute copy-files index.php user@instance-1:/var/www/test