Подтвердить что ты не робот

Создание полного дерева каталогов сразу

Я хотел бы создать сложную структуру каталогов в 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
4b9b3361

Ответ 1

Измените shebang на

#!/bin/bash

для запуска script с bash, поскольку он поддерживает расширение скобок.

Проблема в том, что вы используете оболочку, которая ее не поддерживает. Ваш /bin/sh не указывает на /bin/bash, а на что-то вроде /bin/dash.

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

Ответ 2

Вы можете попробовать использовать дерево для этого.

sudo apt install tree
tree -d .

Это отличный инструмент печати, похожий на консольную древовидную структуру каталогов:

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