web-dev-qa-db-fra.com

Comment puis-je créer des dossiers dans des dossiers dans le terminal

J'ai un dossier nommé music où à l'intérieur il y a tous les dossiers d'artistes. Existe-t-il un moyen de créer ces dossiers: 1. Albums, 2. EP, 3. Singles, 4. Live dans tous les dossiers d'artistes avec une commande?

12
user991023

Bien sûr, exécutez cela dans le dossier musique où se trouvent les dossiers artistes:

for artist in */; do
   for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
      mkdir "$artist/$folder"
   done
done

Vous pouvez l'exécuter sur votre CLI, ou vous pouvez en faire un script Shell en ajoutant #!/bin/sh comme première ligne et l'enregistrer dans un fichier. N'oubliez pas de rendre le fichier exécutable.

Quant à ce qu'il fait: il itère sur tous les répertoires (*/) dans le répertoire courant, puis pour chacun de ces répertoires, itère sur le sous-dossier souhaité (le deuxième for), puis crée le sous-dossier souhaité (relatif).

12
jawtheshark

Vous voudrez peut-être mettre vos accolades {bouclés} pour celui-ci

Pour cet argument, nous ferons semblant ./music n'existe pas

Dans votre répertoire de base pour ./music, nous utiliserons la commande -p pour créer des sous-répertoires si nécessaire et les accolades seront utilisées pour créer un petit tableau

La commande -p est l'abréviation de parent, s'il est plus facile de se souvenir que vous pouvez utiliser --parent au lieu

mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}

Si vous souhaitez jouer avec cela, vous pouvez, par exemple,

mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}

Vous avez des expressions imbriquées, vous pouvez insérer les accolades au milieu d'une chaîne et vous pouvez également autoriser le sous-répertoire à suivre, et vous pouvez être spécifique avec vos sous-répertoires pour un tableau particulier

Je vous suggère de créer un fichier quelque part où vous pouvez créer vos propres modèles avec de telles commandes et leur donner des descriptions

Visitez cette page pour plus d'informations https://www.linuxjournal.com/content/bash-brace-expansion et https://www.linux.com/tutorials/all-about -curly-braces-bash /

18
Steve