我需要像
这样的bash脚本header~ / headers-folder~ / output-folder
所以它递归地找到〜/ headers-folder中的所有.h文件并将它们全部放在〜/ output-folder中并保持文件夹层次结构?
谢谢!
答案 0 :(得分:5)
find /path/to/find -name "*.h" -type f | xargs -I {} cp --parents {} /path/to/destination
检查一下。
答案 1 :(得分:2)
rsync也很棒:
rsync --include '*.h' --filter 'hide,! */' -avm headers-folder/ output-folder/
这将复制所有*.h
个文件,并仅创建必要的目录。
示例:
mkdir -p headers-folder/{subdir,empty}
touch headers-folder/foo.h
touch headers-folder/subdir/foo.h
tree headers-folder
# headers-folder/
# |-- empty
# |-- foo.h
# `-- subdir
# `-- foo.h
rsync --include '*.h' --filter 'hide,! */' -avm headers-folder/ output-folder/
tree output-folder
# output-folder/
# |-- foo.h
# `-- subdir
# `-- foo.h