Google compute engine 在计算复制文件期间创建文件夹

Google compute engine 在计算复制文件期间创建文件夹,google-compute-engine,google-cloud-platform,Google Compute Engine,Google Cloud Platform,我想将一个文件从笔记本电脑复制到计算机实例。是否可以将文件复制到不存在但在复制过程中创建的文件夹中 例如: 我有一个index.php文件,我想把它复制到/var/www/test 文件夹测试不存在 当我运行命令时: gcloud compute copy-files index.php user@instance-1:/var/www/test 它没有给出任何错误。但是当我ssh到实例中时,它在/var/www下显示test,但是 cd /var/www/test 给我: -bash:

我想将一个文件从笔记本电脑复制到计算机实例。是否可以将文件复制到不存在但在复制过程中创建的文件夹中

例如: 我有一个index.php文件,我想把它复制到/var/www/test 文件夹测试不存在

当我运行命令时:

gcloud compute copy-files index.php user@instance-1:/var/www/test
它没有给出任何错误。但是当我ssh到实例中时,它在/var/www下显示test,但是

cd /var/www/test 
给我:

-bash: cd: test: Not a directory

如何创建一个目录,然后复制一个文件?

这是一组有趣的情况,导致了令人惊讶的结果。要了解发生了什么,知道
gcloud compute copy files
命令在后台运行scp命令是很有用的

在这种情况下,scp命令将
/var/www/test
解释为目标路径。由于
/var/www
存在,但
/var/www/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