OVH Cloud OVH Cloud

[script bash] - controle existence fichier

2 réponses
Avatar
ghjghj
Bonjour,

je veux deplacer un fichier d'un repertoire a un autre dans un script.
Mais comment controler si le fichier n'existe pas deja dans le repertoire
de destination, sachant que s'il existe je le renomme en lui mettant un
indice ?
Mon script de depart m'indiquait la presence d'un fichier de meme nom dans
le repertoire de destination lors du mv, mais il ne le fait plus (et je sais
pas pourquoi).

Merci

Grand's

2 réponses

Avatar
Arnaud Gomes-do-Vale
Salut,

"ghjghj" writes:

Mais comment controler si le fichier n'existe pas deja dans le repertoire
de destination, sachant que s'il existe je le renomme en lui mettant un
indice ?


man bash

Tu ne croyais quand même pas pouvoir écrire un programme dans un
langage que tu ne connais pas ? :-)

Au passage, ça n'a rien à voir avec la configuration de GNU/Linux,
pose plutôt ce genre de questions sur fr.comp.os.unix ou peut-être un
fr.comp.lang.* quelconque.

--
Arnaud Gomes-do-Vale -*-*-*-
http://www.glou.org/~arnaud/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
En savoir plus sur GNU/Linux : http://www.linux-france.org/

Avatar
David LE BOURGEOIS

Bonjour,

je veux deplacer un fichier d'un repertoire a un autre dans un script.
Mais comment controler si le fichier n'existe pas deja dans le repertoire
de destination, sachant que s'il existe je le renomme en lui mettant un
indice ?


man bash.

~/tmp $ cat _mv
#!/bin/sh

[ "$2" = "" ] && exit 1
source="$1"
destination="$2"
indice=""
while [ -e "$destination$indice" ]
do
let indice=indice+1
done
mv "$source" "$destination$indice"

~/tmp $ touch a b c
~/tmp $ ./_mv a d
~/tmp $ ./_mv b d
~/tmp $ ./_mv c d
~/tmp $ ls
_mv d d1 d2



Mon script de depart m'indiquait la presence d'un fichier de meme nom dans
le repertoire de destination lors du mv, mais il ne le fait plus (et je sais
pas pourquoi).


Dans certaines configuration mv est un alias pour mv -i.

--
David LE BOURGEOIS