probleme avec les dossier . dans un script de sauvegarde
Bonjours je dois rendre un projet dans le cadre de mes études
#Shell : Save
#Parcours des répertoires à partir d'un argument et recopie de tous les fichiers qu'on y trouve dans un répertoire "~/SAVE"
#Attention, la commande find est proscrite de même que l'utilisation d'options de la commande cp.
Donc pour le moment j'arrive nikel à copier tous mes fichiers et tous mes dossiers sauf ceux commencant par un .
Je rajoute donc une clause .* pour séléctionner ce type de dossier seulement voilà j'ai besoin d'isolé maintenant le dossier . et le dossier .. je fait donc des test avec un script qui va liste les dossier commencant par un "." le problème est qu'avec la condition if test $i -eq . il prend en compte tous mes fichiers commencant par un .
Bien entendu je ne vous demande pas de me faire le scripte mais si vous pouviez m'orienter vers une solution je vous en serais reconnaissant
Code:
1 2 3 4 5 6 7 8 9 10
| #! /bin/sh
for i in .*
do
if test $i -eq .
then
echo "$i est un fucking ."
else
echo $i
fi
done |
Citation:
ili5@sunfire$ ls.sh
. est un fucking .
.#c-lisp.l est un fucking .
.. est un fucking .
.relou est un fucking .
Code:
1 2 3
| #crcp.sh
#! /bin/sh
/home/ili5/exo/rcp.sh $1 /home/ili5/Save |
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
| #rcp.sh
#! /bin/sh
if test $# -eq 2
then
if test -d $1
then
cd $1
echo "Repertoire $1 existant"
for i in .* *
do
if test -d $i
then
echo "$i est un dossier"
echo "création du dossier $i"
mkdir $2/$i
/home/ili5/exo/rcp.sh $i $2/$i
else
echo "$i est un fichier"
echo "copie de $i vers $2/$i"
cp $i $2/$i
fi
done
else
echo "Dossier $1 Inexistant ou introuvable"
fi
fi |