一次创建完整目录树

时间:2013-07-16 10:40:40

标签: linux bash

我想在bash脚本中创建一个复杂的目录结构,并且认为以下内容可行:

mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}

哪会创造:

          tmpdir
    ________|______
   |        |      |
branches   tags  trunk
                   |
                 sources
               ____|_____
              |          |
          includes     docs

然而,当我运行我的脚本时,我最终得到:

tmpdir
   |
trunk

有一种快速简便的方法可以做到这一点,还是我不得不求助于

mkdir -p tmpdir/trunk/sources/includes
mkdir -p tmpdir/trunk/sources/docs
mkdir -p tmpdir/branches
mkdir -p tmpdir/tags

2 个答案:

答案 0 :(得分:15)

将shebang改为

#!/bin/bash

使用bash运行脚本,因为它支持大括号扩展。

问题是您使用的是不支持它的shell。您的/bin/sh并未指向/bin/bash,而是指向/bin/dash

https://wiki.ubuntu.com/DashAsBinSh#A.7B

答案 1 :(得分:0)

您可以尝试使用tree

sudo apt install tree
tree -d .

这是打印控制台式树目录结构的好工具:

├── logstash   
│   ├── afolder
│   ├── bfolder  
│   └── mappings  
├── elastic 
│   └── afolder  
└── reports  
    └── afolder