# Copies conditionnelles scripts Bash

**URL:** <https://www.debian-fr.org/t/copies-conditionnelles-scripts-bash/19090>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/copies-conditionnelles-scripts-bash/19090 "2016-02-20T19:17:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/copies-conditionnelles-scripts-bash/19090/1 "2016-02-20T19:17:59Z")

</div>

Hello à tous,

J’ai fait un très très petit script en Bash qui permet de déplacer des fichiers d’un répertoire vers un autre.

Mais maintenant, j’ai besoin de déplacer ces fichiers dans des répertoires en fonctions de leur type.

Exemple : Fichier texte dans un dossier Fichier texte  
Fichier jpg dans un dossier “Images”

En batch, (désolé de mentionner ce nom ici 😊 ) j’y arrive en faisant ça :

`@echo off
IF EXIST *.txt (copy P:\*.txt P:\Temp\) ELSE echo Fichier txt absent
IF EXIST *.xls (copy P:\*.xls P:\Temp_2\) ELSE echo Fichier excel Absent`

Qui pourrait me traduire cela en script shell svp??

Je suis en apprentissage de ce langage et mes besoins vont plus vite que mon apprentissage…

Merci pour vos aides ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 7:18 UTC](https://www.debian-fr.org/t/copies-conditionnelles-scripts-bash/19090/2 "2016-02-20T19:18:00Z")

</div>

Bonjour,

Ceci devrait t’aider

`for i in txt xls
do
  set -- *.$i
  if [-e "$1"]
  then
    cp *.$i /chemin/$i/
  else
    echo "Pas de fichiers .$i"
  fi
done`

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 20, 2016, 7:18 UTC](https://www.debian-fr.org/t/copies-conditionnelles-scripts-bash/19090/3 "2016-02-20T19:18:00Z")

</div>

Merci beaucoup micky!

D’après ce que je crois comprendre, i est une variable?? et le $ sert à utiliser cette variable?

Par contre, ici

```auto
if [-e "$1"]
```

C’est bien 1 ou i??

Merci pour ton aide ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 7:18 UTC](https://www.debian-fr.org/t/copies-conditionnelles-scripts-bash/19090/4 "2016-02-20T19:18:13Z")

</div>

Bonjour,

Les variables lorsqu’elles sont initialisées sont appelé via $Nom\_de\_la\_variable.

i est en effet une varibale initialisé via la boucle for.

La seconde variable est bien un 1 (un) initialisé par la commande suivante :`set -- *.$i`
