Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2008, à 16: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, à 18:07)

Hors ligne

#2 Le 16/10/2008, à 16: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, à 16: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, à 16: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 smile

Hors ligne

#5 Le 16/10/2008, à 16: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, à 16: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, à 16:53)


Rêvons nos vies, vivons nos rêves.

Hors ligne

#7 Le 16/10/2008, à 16: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, à 17:00

whalexis

Re : [Résolu] besoin de précisions sur un script débutant

Cedonix a écrit :

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, à 17: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