linux - 一次创建一个完整的目录树

标签 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

最佳答案

将 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/

相关文章:

linux - 从 bash 脚本中检查自动完成是否已初始化

linux - 循环点直到过程完成?狂欢

linux - 在 .sh bash 脚本文件中使用 awk

bash - 并行输出到控制台

linux - 从 PXE 启动 docker 容器

linux - 在树莓派上启动窗口管理器后启动GUI应用程序

windows - .git 文件夹是跨平台的吗?

linux - sudo 用户的 Ansible env 变量不同

bash - bash 中数字的表示和 bash 中十六进制数的 printf

bash - 我应该以什么顺序发送信号以正常关闭进程?