我想在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

最佳答案

将shebang更改为

#!/bin/bash

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

问题是您使用的 shell 程序不支持它。您的/bin/sh不指向/bin/bash,而是指向/bin/dash之类的东西。

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

关于linux - 一次创建完整的目录树,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17674406/

10-16 08:02