我需要安全复制(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/

10-13 07:30