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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.