我试图使用scp递归地从本地目录复制到远程目录....我在远程端创建了文件夹:
远程位置(已创建):
/usr/local/www/foosite
我正在目录中的本地计算机上运行scp:
的/ usr /本地/网络/网络/ foosite
但它正在抄袭" foosite"目录作为子目录...我只想要文件夹的内容,而不是文件夹本身......
以下是我使用的命令:
scp -r /usr/local/web/www/foosite scpuser@216.99.999.99:/usr/local/www/foosite
答案 0 :(得分:1)
问题是如果你不在调用的本地部分使用星号(*),scp将在远程服务器中创建一个新的顶级目录。它应该是这样的:
scp -r /usr/local/web/www/foosite/* scpuser@216.99.999.99:/usr/local/www/foosite
这表示"复制内容" (但不是目录本身)到远程位置。
希望这会有所帮助......花了我一个小时左右来解决这个问题!!!
答案 1 :(得分:0)
老问题,但我认为有更好的答案。诀窍是让foosite目录离开目的地:
scp -r /usr/local/web/www/foosite scpuser@216.99.999.99:/usr/local/www
如果目标不存在,这将在目标上创建foosite目录,但如果目录已存在,则只将文件复制到foosite中。基本上-r选项将复制路径中的最后一个目录及其下的任何内容。如果目标上已存在最后一个目录,则它不会执行mkdir。