我有以下的树
# upper letters = directory # lower letters = files A |-- B |-- C |-- D |-- e <= file |-- F |-- G
我需要复制这棵树到另一个目的地,recursion地忽略所有的空目录。 所以目的地最终看起来像:
C |-- e
当然分钟后我发现一个简单的方法。 rsync有一个--prune-empty-dirs选项。
有这个问题的各种解决scheme(采取从这个网页 ):
该选项使用mkdir命令和find命令。 此方法还要求您在执行命令时位于源文件夹内。
bash$ cd /path/to/source && find . -type d -exec mkdir -p /path/to/dest/{} ;
使用find和cpio
bash$ find /path/to/source -type d | cpio -pd /path/to/dest/
使用Rsync
bash$ rsync -a --include '*/' --exclude '*' /path/to/source /path/to/dest
要么
bash$ rysnc -a -f"+ */" -f"- *" /path/to/source /path/to/dest