一尘不染

将文件夹scp到远程系统,保持目录布局

linux

我有一个带有数百个嵌套子文件夹的大型目录树。我只需要将4个文件夹及其内容复制到远程系统,但是我需要将目标文件夹结构保持不变。

例如

./test/sub1/subsub1/hello.txt
./test/sub1/subsub2/hello2.txt    
./test/sub2/hello3.txt

我想将./test/sub1/subsub1/复制到诸如user @ system:〜/ test / sub1 / subsub1 /
的目标,但是我不想复制subsub2或sub2。

我已经尝试过使用scp,如下所示:

scp -r ./test/sub1/subsub1 me@my-system:~/test/sub1/subsub1

结果:scp:/ test / sub1 / subsub1:没有这样的文件或目录

我也尝试过:

scp -r ./test/sub1/subsub1 me@my-system:~/test

这可行,但是将所有文件转储到单个目录中。/ test / sub1 / subsub1目录结构未维护。

如何在保留文件夹结构的同时复制文件夹?


阅读 600

收藏
2020-06-07

共1个答案

一尘不染

您需要一个两遍解决方案。首先,确保目标目录在远程主机上存在:

ssh me@my-system 'mkdir -p ~/test/sub1/subsub1'

然后,您可以复制文件。我建议使用rsync代替scp,因为它是专为同步目录而设计的。用法示例:

rsync -r -e ssh ./test/sub1/subsub1/ me@my-system:~/test/sub1/subsub1

-e标志接受一个远程shell来执行传输。 尾部的斜杠对于非常重要rsync,因此请确保您与上面的示例匹配。

2020-06-07