2015-11-05 75 views
0

我想将笔记本中的文件复制到计算实例。我可以将文件复制到不存在但在复制过程中创建的文件夹中吗?在计算复制文件期间创建文件夹

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

当我运行一个命令:

gcloud compute copy-files index.php [email protected]:/var/www/test 

它不给任何错误。但是,当我使用SSH连接实例它显示测试在/ var/WWW,但

cd /var/www/test 

给我:

-bash: cd: test: Not a directory 

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

回答

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 [email protected] --command='mkdir /var/www/test' 
gcloud compute copy-files index.php [email protected]:/var/www/test 
+0

谢谢benson的帮助。 :) –

相关问题