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:
A l’exécution du script , la copie se passe correctement mais j'ai des messages d'erreur du type:
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
cp : omission du repertoire nomRepertoire
Merci de votre aide.
Partager