La création d'une arborescence de répertoires à la fois
Je voudrais créer une complexe structure de répertoire dans un script bash et avait l'impression que la suivante devrait fonctionner:
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
Ce qui donnerait:
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs
Cependant quand je lance mon script, je me retrouve avec:
tmpdir
|
trunk
Est-il un moyen facile et rapide de faire ceci ou vais-je avoir recours à des
mkdir -p tmpdir/trunk/sources/includes
mkdir -p tmpdir/trunk/sources/docs
mkdir -p tmpdir/branches
mkdir -p tmpdir/tags
- Je l'ai juste testé et a travaillé pour moi, la façon que vous désirez. Je suis avec
mkdir (GNU coreutils) 8.13
- J'ai le sentiment que c'est le même problème comme ceci: stackoverflow.com/questions/17673337/...
- Vous êtes parfaitement sûr que le shell que vous utilisez dans le shebang (#!) peut le faire? Est-il
/bin/bash
ou est-il/bin/sh
pointant vers/bin/dash
dans Debian ou Ubuntu? Si ne pas le changer pour/bin/bash
et essayez de nouveau. - Le moyen le plus facile de trouver quoi mettre après le shebang est d'utiliser le
which bash
de commande. Il retourne la chaîne de caractères exacte que vous souhaitez.
Vous devez vous connecter pour publier un commentaire.
Changement shebang à
pour exécuter le script avec bash, car il supporte accolade de l'expansion.
Le problème est que vous utilisez le shell ne le supporte pas. Votre
/bin/sh
ne pointe pas vers/bin/bash
mais à quelque chose comme/bin/dash
.https://wiki.ubuntu.com/DashAsBinSh#A.7B
Vous pouvez essayer d'utiliser arbre pour cela.
C'est un excellent outil d'impression sur une console comme la structure arborescente: