如何将整个嵌套的目录中的头文件复制到另一个目录后复制到新的文件夹保持相同的层次结构

我有一个目录有很多头文件(.h)和其他.o和.c文件和其他文件。 这个目录里面有很多嵌套的目录。 我只想将头文件复制到一个单独的目录中,保留新目录中的相同结构。

cp -rf oldDirectory newDirectory将复制所有文件。 我只想复制头文件。

 (cd src && find . -name '*.h' -print | tar --create --files-from -) | (cd dst && tar xvfp -) 

如果你只是想要硬链接文件,而不是复制它们,你可以做一些类似于cpio的事情,但是之后可能需要一点点修改。 如果你有很多的数据,不介意(或需要!)共享,这可以更快。 如果dst需要一个src,它就会变得困惑 – 这是,如果它不只是一个副作用:

  1. 找到src -name'* .h'-print | cpio -pdlv dst
  2. mv dst / src / * dst /。
  3. rmdir dst / src
 cp -rf oldDirectory/*.h newDirectory 

或类似的东西(取决于实际路径)

 find oldDirectory -type f -name "*.h" -print0 | xargs -file cp file newDirectory 

这个为我工作:

 rsync -avm --include='*.h' -f 'hide,! */' . /destination_dir 

从这里