我想从非空目录树bar2
创建一个空目录结构bar1
。
bar1
和bar2
都处于同一层级。如何以有效的方式使用mkdir
以便自动创建中间目录?
awk
,从列表中删除所有分支,以便我只能在叶子上运行`mkdir。mkdir
以复制bar1的目录结构答案 0 :(得分:6)
cd bar1
find . -type d -exec mkdir -p '../bar2/{}' \;
答案 1 :(得分:2)
问题的难点(如何仅列出叶目录)已asked before on SO。您可以在那里使用find
/ awk
组合,并在每个结果上运行mkdir -p
:
[bar1] $ find . -type d | sort | awk '$0 !~ last {print last} {last=$0} END {print last}' | xargs -Ix mkdir -p ../bar2/x
答案 2 :(得分:2)
您可能希望改为使用rsync:
rsync -r -f '+ */' -f '- *' bar1 bar2
更多详细:
rsync --verbose --recursive --include '*/' --exclude '*' bar1 bar2