UNIX,如何维护目录结构?

时间:2010-11-10 16:57:20

标签: linux unix

我想从非空目录树bar2创建一个空目录结构bar1bar1bar2都处于同一层级。如何以有效的方式使用mkdir以便自动创建中间目录?

  1. 使用find从bar1创建目录列表,并在必要时对其进行排序。
  2. 使用awk,从列表中删除所有分支,以便我只能在叶子上运行`mkdir。
  3. 使用列表运行mkdir以复制bar1的目录结构

3 个答案:

答案 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