#1 Le 16/10/2008, à 15:22
- flomyfa
[Résolu] besoin de précisions sur un script débutant
Bonjour,
Je suis toute nouvelle venue dans le monde du libre.
J'ai écris un mini-script, il s'agit d'une première tentative pour me familiariser.
Le voici :
#!/bin/bash
# mon premier script
#qui consiste à modifier les droits d'accès
#de tous les fichiers de mon dossier
mkdir sauve
echo Repertoire cree
cp * sauve
echo Sauvegarde terminee
chmod 777 *
echo Droits acces modifies
Bien que ce script fonctionne, j'ai un message qui me dit :
cp: omission de répertoire 'sauve'
J'aimerais bien comprendre avant de poursuivre.
Merci pour votre aide et félicitations à cette communauté si sympathique
Dernière modification par flomyfa (Le 16/10/2008, à 17:07)
Hors ligne
#2 Le 16/10/2008, à 15:29
- pipou24
Re : [Résolu] besoin de précisions sur un script débutant
peut etre :
cp * sauve -> cp ./* sauve/ ??
Non geek et fier de l'être. ㋡
Hors ligne
#3 Le 16/10/2008, à 15:44
- whalexis
Re : [Résolu] besoin de précisions sur un script débutant
Salut,
Je pense que tu devrais ajouter la récursivité dans tes commandes
cp -R * sauve
et
chmod -R 777 *
Ensuite pour le message d'alerte, je pense que c'est parce que tu essayes de copier sauve dans lui même, ce qui n'est pas possible.
Si tu veux conserver les droits de tes fichiers à l'identique dans ta sauvegarde, tu peux utiliser l'option d'archivage de cp. Vas voir dans le manuel (en lançant 'man cp' dans ton terminal), c'est la première option.
Alexis
#4 Le 16/10/2008, à 15:47
- sammy
Re : [Résolu] besoin de précisions sur un script débutant
Ensuite pour le message d'alerte, je pense que c'est parce que tu essayes de copier sauve dans lui même, ce qui n'est pas possible.
Je confirme que le message d'erreur vient bien de là. Tu ne peux pas copier un répertoire dans lui même
Hors ligne
#5 Le 16/10/2008, à 15:50
- verbose
Re : [Résolu] besoin de précisions sur un script débutant
Le problème est que tu crée d'abord un répertoire :
mkdir sauve
Puis, tu essaies de sauvegarder tous les fichiers et répertoires dans sauve, y compris sauve lui-même !!!
cp * sauve
Il faut que tu crées sauve dans un autre répertoire :
#!/bin/bash
# mon premier script
#qui consiste à modifier les droits d'accès
#de tous les fichiers de mon dossier
mkdir ../sauve #Il ne faut surtout pas créer "sauve" dans le répertoire contenant les fichiers à sauvegarder
echo Repertoire cree
cp -r * ../sauve #On sauvegarde les fichiers et les répertoires
echo Sauvegarde terminee
cd ../sauve #On se place dans le répertoire de sauvegarde
chmod 777 *
echo Droits acces modifies
Tu noteras l'ajout de l'option -r à la commande cp. Cette option est nécessaire si tu veux sauvegarder un répertoire pour qu'il recopie le répertoire ainsi que son contenu, on fait alors une copie récursive.
Hors ligne
#6 Le 16/10/2008, à 15:53
- Cedonix
Re : [Résolu] besoin de précisions sur un script débutant
En fait cette erreur est tout à fait normal car ton script essai de copier le répertoire "sauve". Cependant pour copier un répertoire il faut utiliser la commande cp avec l'option -R.
Donc dans ton script tu mets :
cp -R * sauve
Ce qui te permettra également de faire une copie de tous les dossiers ce trouvant dans ton répertoire courant.
Mais tu auras une autre erreur du genre :
cp: ne peut copier un répertoire `sauve' dans lui-même `sauve/sauve'
Le message d'erreur est assez explicite, donc je ne t'explique pas.
Pour résoudre ce problème je te conseil de renvoyer les messages d'erreurs que tu peut avoir lords de la copie dans /dev/null :
cp -r * sauve 2>/dev/null
Et voila plus une seule erreur ne s'affiche sur ton terminal et en plus tu sauvegarde tes fichiers et tes dossiers.
Si tu souhaites plus d'info ou de l'aide, fais signe ...
Dernière modification par Cedonix (Le 16/10/2008, à 15:53)
Rêvons nos vies, vivons nos rêves.
Hors ligne
#7 Le 16/10/2008, à 15:55
- flomyfa
Re : [Résolu] besoin de précisions sur un script débutant
merci pour ta réponse.
Malheureusement, ça ne change rien.
Hors ligne
#8 Le 16/10/2008, à 16:00
- whalexis
Re : [Résolu] besoin de précisions sur un script débutant
Pour résoudre ce problème je te conseil de renvoyer les messages d'erreurs que tu peut avoir lords de la copie dans /dev/null :
cp -r * sauve 2>/dev/null
Et voila plus une seule erreur ne s'affiche sur ton terminal et en plus tu sauvegarde tes fichiers et tes dossiers.
Je suis pas sur que ce soit une bonne idée de ne pas avoir de messages d'erreurs. S'ils sont là, il y a bien une raison. Par contre, il est peut être préférable de rediriger la sortie vers un fichier pour pouvoir traiter les erreurs plus tard.
#9 Le 16/10/2008, à 16:08
- flomyfa
Re : [Résolu] besoin de précisions sur un script débutant
Quand on a la réponse, ça semble tellement évident !
Je tâcherais de faire mieux la prochaine fois !
Je note tous vous conseils
Un grand merci à tous
Hors ligne