我需要安全复制(scp)来远程复制目录,该目录的子结构从UNIX命令行保留。子目录具有我想要的名称相同的文件以及其他我不想要的其他内容。这是结构的样子。
directorytocopy
subdir1
1.wanted
2.wanted
...
1.unwanted
2.notwanted
subdir2
1.wanted
2.wanted
...
1.unwanted
2.notwanted
..
我只希望
.wanted
文件保留目录结构。我意识到可以编写一个shell(我正在使用bash)脚本来做到这一点。有可能以一种不太暴力的方式做到这一点吗?我没有足够的空间,因此无法复制整个内容并删除不需要的文件。 最佳答案
Adrian最好使用rsync
。您还可以使用tar
捆绑所需的文件:
cd directorytocopy
shopt -s nullglob globstar
tar -cf - **/*.wanted | ssh destination 'cd dirToPaste && tar -xvf -'
在这里,使用tar的
-f
选项和文件名-
将stdin/stdout用作存档文件。这未经测试,可能会失败,因为存档可能不包含保存“需要”文件的实际子目录。
关于bash - 如何 `scp`目录保留结构,但仅选择某些文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30806270/