Script bash de fichiers d'un repertoire
Bonjour.
J'ai un léger problème avec un script bash qui doit copier d'un répertoire source vers un répertoire destination uniquement les fichiers (et pas les répertoires ). Mon script fonctionne mais il prend en compte mes fichiers répertoire alors que je les ai exclut a travers une condition.
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#!/bin/bash
clear
echo -e \\n \\t "Quel est le repertoire source que vous voulez copier ?"
read src
if [ -z $src ] ; then
echo -e \\n \\t "Vous n'avez pas donner le nom du repertoire source !"
exit
fi
if [ ! -d $src ] ; then
echo -e \\n \\t $src" n'est pas un repertoire !"
exit
fi
echo -e \\n \\t "Quel est le repertoire de destination ?"
read dst
if [ -z $dst ] ; then
echo -e \\n \\t "Vous n'avez pas donner le nom du repertoire de destination !"
exit
fi
if [ ! -d $dst ] ; then
echo -e \\n \\t $dst" n'est pas un repertoire !"
exit
fi
droitsEcriture=1
if [ ! -w $dst ] ; then
chmod u+w $dst
droitsEcriture=0
fi
#Copie les fichiers ordinaire d'un repertoire source dans un repertoire destination si non-existence des fichiers dans le repertoire de destination
appartient=0
for ficSrc in `ls $src` ;
do
if [ ! -d $ficSrc ] ; #Le script ne devrait traiter que les fichiers , pourtant il essaye tout de meme de copier les repertoires
then
for ficDst in `ls $dst` ;
do
if [ $ficSrc == $ficDst ] ;
then
appartient=1
fi
done
if [ $appartient == 0 ] ; then
cp $src/$ficSrc $dst
fi
fi
done
if [ $droitsEcriture == 0 ] ; then
chmod u-w $dst
fi |
A l’exécution du script , la copie se passe correctement mais j'ai des messages d'erreur du type:
cp : omission du repertoire nomRepertoire
Merci de votre aide.