ls : valeur de retour si vide
Bonjour,
Je souhaite faire un script de sauvegarde, d'une arborescence:
Code:
1 2 3 4 5
|
Dir
+-- subdir1
+-- subdir2
+-- subdir3 |
Les 3 subdir sont connus et figés. Je souhaite sauvegarder leur contenu dans l'équivalent de l'arborescence sur un NAS.
J'ai donc un code de ce type:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
LOG=/mon/log
DIR=/mon/chemin/dacces/a/Dir
for f in `ls $DIR`
do
if [ -d "$DIR/$f" ]; then
NBFILES=`find $DIR/$f -type f | wc -l`
echo "Copie de $DIR/$f..." >> $LOG
cp -r $DIR/$f/* /mnt/nas/$DIR/$f/
if [ $? -eq 0 ]; then
echo "[ OK ]: $NBFILES fichiers" >> $LOG
else
echo "[FAIL]: CP command fail" >> $LOG
fi
fi
done |
Ce code fonctionne très bien, mais dans mon log, une erreur apparait: "Aucun fichier ou répertoire de ce type" quand un des répertoires "subdir" est vide.
Comment puis-je palier à cette erreur? Y a-t-il une option à ajouter à cp pour qu'il ignore les vides?
Merci d'avance.