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