Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

lioren
2007-04-20 00:14:16

Bonjour,
le sujet a déjà été évoqué mais jamais résolu.

Donc voici un batch qui permet de recréer l'arborescence de la galerie mais uniquement avec les images HD.
Ainsi il ne reste plus qu'à graver le répertoire de destination.
A la fin du batch, je fais une comparaison des répertoires sources avec ceux de destinations par md5.

Je l'utilise sur une distribution Debian Etch, il sera peut être nécessaire de l'adapter pour une autre distrib.
Je vous livre le code tel quel, si vous avez des suggestions pour l'améliorer ou l'optimiser je suis biensur preneur.   

Si vous ne maitrisez pas ce type batch et que vous le modifiez, sachez que vous pouvez supprimer toute votre galerie sans confirmation!!!

Code:

#! /bin/sh
# Récupération des images HD avant gravure

# Définition des variables
SOURCE=/home/toto/phpwebgallery/galleries/
DESTINATION=/home/gravure_photo/

cd $SOURCE

# optionnel: supprime les fichiers Thumbs.db dans galerie
find . -type f -name Thumbs.db -exec rm {} \;
# on crée l'arborescence de la galerie dans le répertoire de destination
find . -name pwg_high -type d -exec mkdir -p "$DESTINATION{}" \;
# on copie les images HD dans le répertoire de destination
find . -type f -path '*pwg_high*' -exec cp -u {} "$DESTINATION{}" \;
# on crée un fichier de différence des images HD du répertoire source
find . -type f -path '*pwg_high*' | xargs md5sum > /tmp/src.txt 

cd $DESTINATION
# on déplace toutes les images HD dans le répertoire parent
find . -type f -path '*pwg_high*' -execdir mv {} ../ \;
# on supprime tous les répertoires pwg_high dans le répertoire de destination
find . -type d -path '*pwg_high*' 2>/dev/null -exec rmdir {} \;
# on crée un fichier de différence des images HD du répertoire de destination
find . -type f | xargs md5sum > /tmp/dest.txt 

# on compare la source avec la destination si rien ne s'affiche à la fin
# de l'exécution du batch, c'est que tout c'est bien déroulé
cut -f 1 -d ' ' /tmp/src.txt > /tmp/src.cut
cut -f 1 -d ' ' /tmp/dest.txt > /tmp/dest.cut
diff -y -W 70 /tmp/src.cut /tmp/dest.cut

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact