在计算复制文件期间创建文件夹
Create Folder during compute copy-files
我想将文件从我的笔记本电脑复制到计算实例。我可以将文件复制到一个不存在但在复制过程中创建的文件夹吗?
示例:
我有一个文件 index.php,我想将它复制到 /var/www/test
文件夹测试不存在。
当我运行一个命令时:
gcloud compute copy-files index.php user@instance-1:/var/www/test
它没有给出任何错误。但是当我 ssh 进入实例时,它在 /var/www 但
下显示测试
cd /var/www/test
给我:
-bash: cd: test: Not a directory
如何创建目录然后复制文件?
这是一组有趣的情况,导致了令人惊讶的结果。要了解发生了什么,知道 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
我想将文件从我的笔记本电脑复制到计算实例。我可以将文件复制到一个不存在但在复制过程中创建的文件夹吗?
示例: 我有一个文件 index.php,我想将它复制到 /var/www/test 文件夹测试不存在。
当我运行一个命令时:
gcloud compute copy-files index.php user@instance-1:/var/www/test
它没有给出任何错误。但是当我 ssh 进入实例时,它在 /var/www 但
下显示测试cd /var/www/test
给我:
-bash: cd: test: Not a directory
如何创建目录然后复制文件?
这是一组有趣的情况,导致了令人惊讶的结果。要了解发生了什么,知道 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