我有一个带有数百个嵌套子文件夹的大型目录树。我只需要将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目录结构未维护。
如何在保留文件夹结构的同时复制文件夹?
您需要一个两遍解决方案。首先,确保目标目录在远程主机上存在:
ssh me@my-system 'mkdir -p ~/test/sub1/subsub1'
然后,您可以复制文件。我建议使用rsync代替scp,因为它是专为同步目录而设计的。用法示例:
rsync
scp
rsync -r -e ssh ./test/sub1/subsub1/ me@my-system:~/test/sub1/subsub1
该-e标志接受一个远程shell来执行传输。 尾部的斜杠对于非常重要rsync,因此请确保您与上面的示例匹配。
-e