【发布时间】:2023-03-13 22:41:02
【问题描述】:
我有一个包含数百个嵌套子文件夹的大型目录树。我只需要将 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: No such file or directory
我也试过了:
scp -r ./test/sub1/subsub1 me@my-system:~/test
这可行,但会将所有文件转储到一个目录中。不维护 /test/sub1/subsub1 目录结构。
如何复制文件夹,同时保持其结构?
【问题讨论】:
-
懒人版:
tar -cf myfile.tar ./test/sub1/subsub1; scp myfile me@mysystem:~; echo 'tar -xf myfile.tar && rm myfile.ta' | ssh me@mysystem -
使用存档还有一个优势,即一个大文件的数据传输速度比数百个小文件(如果您有数百个小文件)要快。
-
非常真实和伟大的单线。我试了一下,确实生成了 tar 文件,但是得到一个“不会分配伪终端,因为 stdin 不是终端错误”。