cat MaListeDeFichiers | while read f; do cp -a $f ../autre/ ; done
Le problème avec ce genre de ligne est toujours le même, et c'est visiblement partout pareil:
pourquoi ne vérifiez-vous pas le code retour de cp ?
Il est si simple de générer une liste en sortie avec les fichier effectivement copiés par cp (cp retourne 0) et à la fin du script de comparer cette liste avec diff à la liste passée en entrée pour signaler les fichiers qui n'ont pu être copiés...
[^] # Re: C'est pas pratique...
Posté par forc3 . En réponse à la dépêche Ultracopier, la copie enfin facile. Évalué à 2.
cat MaListeDeFichiers | while read f; do cp -a $f ../autre/ ; done
Le problème avec ce genre de ligne est toujours le même, et c'est visiblement partout pareil:
pourquoi ne vérifiez-vous pas le code retour de cp ?
Il est si simple de générer une liste en sortie avec les fichier effectivement copiés par cp (cp retourne 0) et à la fin du script de comparer cette liste avec diff à la liste passée en entrée pour signaler les fichiers qui n'ont pu être copiés...
Truc du genre :
#!/bin/bash
BIN=${0##*/}
FILE=${1?usage: $BIN listedefichiers.txt destdir}
DIR=${2?usage: $BIN listedefichiers destdir}
rm -f $FILE.out
mkdir -p $DIR
if (( $? ))
then
echo "Repertoire impossible a creer: $DIR"
exit 1
fi
while read f
do
cp -a $f $DIR
if (( $? ))
then
break
else
echo $f >> $FILE.out
fi
done < $FILE
diff -q $FILE $FILE.out
if (( $? ))
then
comm -3 $FILE $FILE.out > $FILE.re
echo -e "Impossible de copier les fichiers:\n$(<$FILE.re)"
# Boucle infinie pour reessayer :)
# 0ドル $FILE.re $DIR
fi
PS: mes excuses pour les éventuels problèmes d'affichage ( > etc)