[Résolu] Dupliquer plusieurs fois

Bonsoir,

(J’ai beaucoup de questions aujourd’hui. )

Avec bash, puis je faire x copies d’un dossier plein ?
pour avoir dossier2, dossier3, dossier4 …

Merci d’avance
Guillaume

Oui, tu peux :stuck_out_tongue:

Sinon, tu peux être aussi plus précis :wink:

ok

je dois créer 28 copies d’un dossier contenant un wordpress avec son thème.
Pour avoir 28 fois ce dossier, avec +1 à la fin du nom de ce dossier …

Tu me suis, PengouinPdt ? :slight_smile:

Te suivre non … mais moi comprendre toi :stuck_out_tongue:

#!/bin/sh

i=1

while [ $i -lt 28 ]; do
  mkdir "/dir$i"
  cp -r /dir "/dir$i"
  let i=i+1
done

C’est à l’arrache , sans garantie que ça fonctionne … dans l’esprit, c’est ça.

Salut :slight_smile:

je tente ta solution.
À bientôt

Guillaume en plein chroot

#!/bin/sh

i=1

while [ $i -lt 28 ]; do
  mkdir "dir$i"
  cp -r dir "dir$i"
  let i=i+1
done

mieux sans les /
mais ça marche pas.

./gh
j’ai une boucle :

mkdir: impossible de créer le répertoire « dir1 »: Le fichier existe
cp: impossible d'évaluer « dir »: Aucun fichier ou dossier de ce type
./gh: 8: ./gh: let: not found

./gh dir1
mkdir: impossible de créer le répertoire « dir1 »: Le fichier existe
cp: impossible d'évaluer « dir »: Aucun fichier ou dossier de ce type
./gh: 8: ./gh: let: not found

c’est quoi, “let” ? :slight_smile:

Manuel de sh (1) :

       let argument [argument ...]
              Chaque argument est une expression arithmétique à évaluer (consultez ÉVALUATION ARITHMÉTIQUE ci-dessus). Si l'évaluation du dernier argument donne 0, let renvoie 1 ; sinon 0 est renvoyé.

Si tu le mets pas let, i vaudra “i+1” (la chaîne de caractères) et non pas le résultat de l’opération arithmétique.

Merci Almtesh

Tu as une idée de solution ?

Alors là franchement @gillaume1, je ne me serais pas attendu à cela …
j’ai oublie de te préciser que “/dir/” était à modifier avec le nom de ton répertoire …

#!/bin/sh

dir="/nom_du_repertoire_à_copier"
i=1

while [ $i -lt 28 ]; do
  mkdir "${dir}$i"
  cp -r "${dir}" "${dir}$i"
  let i=i+1
done

C’est une des manières d’évaluer une expression arithmétique, en l’occurrence d’incrémenter la variable ‘i’.
J’aurais pu très bien te le coder à “l’ancienne”, tel que : i=$((i+1)) (si mes souvenirs sont bons …)


Je t’ai écrit cela, pour te signifier que je n’étais pas sûr du jet … mais je ne pensais pas que tu l’aurais “pris” tel quel" … je ne pensais pas que tu n’y connaissais strictement rien … je m’étais dit que tu modifierais le nécessaire :stuck_out_tongue:
Dans l’erreur, je suis ! exit 255

C’est bon, j’ai trouvé !
Merci ! :stuck_out_tongue:

for i in {0…28}; do cp -r test test${i} ; done

1 J'aime

« je ne pensais pas que tu n’y connaissais strictement rien»

Voyons PengouinPdt, on ne dit pas ça à quelqu’un ! :slight_smile:
et la bienveillance ??? Si prêt de noël en plus !

Passe de bonnes fêtes :slight_smile:

Détrompes toi, c’est sans malveillance … juste un simple constat … je m’étais fais des idées.

Pour le reste …