我正在将我的文件从本地机器复制到谷歌虚拟机。
我目前使用本地机器的SSH连接访问谷歌虚拟机。
以下是命令。
gcloud compute scp ~/Desktop/testing.png dms-2:~/testing --internal-ip --zone=us-west1-b
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 19 100 19 0 0 2100 0 --:--:-- --:--:-- --:--:-- 2375
testing.png 100% 133KB 19.1KB/s 00:06
但是,当我做我的谷歌虚拟机上的ls什么都没有出现。
s0p04bp@dms-2:~$ cd /usr/lib/testing/
s0p04bp@dms-2:/usr/lib/testing$ ls
s0p04bp@dms-2:/usr/lib/testing$ pwd
/usr/lib/testing
s0p04bp@dms-2:/usr/lib/testing$
不知道为什么它不显示在我的谷歌虚拟机?
看起来你是把文件复制到了错误的目录。
斜杠(~)是Linux的 "快捷方式",用来表示用户的主目录。因此,斜杠(~)是指向用户主目录下的文件或目录的路径的开头。
从 https:/twiki.orgcgi-binviewWikilearnTildeSlash
如果你想 testing.png
出现在目录内 /usr/lib/testing/
,最终成为 /usr/lib/testing/testing.png
你应该把它复制到那里。我也会把我连接的用户具体到GCP实例上。
下一个例子将工作,假设 /usr/lib/testing/
文件夹存在于远程实例上,并且具有正确的权限。由于 /usr/lib
通常只有root用户可以编辑。
gcloud compute scp ~/Desktop/testing.png s0p04bp@dms-2:/usr/lib/testing/ --zone=us-west1-b
如果文件夹不存在,你需要先创建它,并赋予它正确的权限。
gcloud compute ssh s0p04bp@dms-2 zone=us-west1-b --command "sudo mkdir -p /usr/lib/testing && sudo chown s0p04bp:s0p04bp /usr/lib/testing"