5

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

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

4

3 回答 3

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

如果您只想硬链接文件而不是复制它们,您可以使用 cpio 执行类似的操作,但之后可能需要一些 mv'ing。如果您有大量数据并且不介意(或需要!)共享,这可能会快得多。如果 dst 需要在其中包含 src ,它会感到困惑 - 如果它不仅仅是一个副作用:

  1. 查找 src -name '*.h' -print | cpio -pdlv dst
  2. mv dst/src/* dst/.
  3. rmdir dst/src
于 2012-04-16T17:30:17.867 回答
2

这个对我有用:

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

这里

于 2015-04-05T12:03:29.833 回答
-1
cp -rf oldDirectory/*.h newDirectory

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

find oldDirectory -type f -name "*.h" -print0 | xargs -file cp file newDirectory
于 2012-04-16T15:16:30.540 回答