{"id":66,"date":"2006-06-16T20:11:02","date_gmt":"2006-06-16T19:11:02","guid":{"rendered":"http:\/\/www.bergeret.org\/blog\/?p=66"},"modified":"2006-09-13T12:43:33","modified_gmt":"2006-09-13T11:43:33","slug":"scripts-pour-ranger-les-photos","status":"publish","type":"post","link":"https:\/\/www.bergeret.org\/blog\/2006\/06\/16\/scripts-pour-ranger-les-photos\/","title":{"rendered":"Scripts pour ranger les photos"},"content":{"rendered":"<p>Bon, c&rsquo;est pas tout d&rsquo;avoir un appareil photo num\u00e9rique, mais de temps en temps, faut bien les mettre sur disque dur pour faire de la place sur la carte.<br \/>\nPis apr\u00e8s, faut s&rsquo;y retrouver facilement.<br \/>\nAlors, j&rsquo;ai \u00e9crit deux scripts (en fait, trois).<!--more--><br \/>\nLe premier recopie \u00ab\u00a0intelligemment\u00a0\u00bb les photos de la carte sur le disque dur (c&rsquo;est \u00e0 dire qu&rsquo;il ne transf\u00e8re que ce qui est plus r\u00e9cent sur le carte que sur le disque :<br \/>\n<code><br \/>\n#!\/bin\/sh<br \/>\nrsync -u \/media\/sdd1\/DCIM\/101_PANA\/* \/home\/commun\/Images\/PhotosNumeriques\/temporaire<br \/>\n<\/code><br \/>\nCelui l\u00e0 est assez trivial.<br \/>\nL&rsquo;autre va extraire les informations EXIF des fichiers pour connaitre la date de prise de vue (avec imagemagick), va d\u00e9placer le fichier dans la structure arborescente <em>ann\u00e9e\/mois\/jour<\/em>, en pr\u00e9fixant le nom du fichier de <em>ann\u00e9emoisjour<\/em>, et en cr\u00e9ant un lien symbolique de ce fichier vers le fichier originel (pour \u00e9viter que l&rsquo;op\u00e9ration de synchro ne recopie le fichier). L&rsquo;id\u00e9e, c&rsquo;est que, souvent, des photos prises le m\u00eame jour se retrouvent ensemble lorsqu&rsquo;elles sont class\u00e9es.<br \/>\nLe script :<br \/>\n<code><br \/>\n#!\/bin\/bash<br \/>\nidentify -format \"%[EXIF:DateTime]\" $1 | sed -r -e \"s\/.*([0-9]{4}):([0-9]{2}):([0-9]{2}).*\/\\1\\n\\2\\n\\3\/g\" > $1.info<br \/>\nannee=`sed -n 1p $1.info`<br \/>\nmois=`sed -n 2p $1.info`<br \/>\njour=`sed -n 3p $1.info`<br \/>\nrm $1.info<br \/>\ncommencePar=`echo $1 | grep $annee$mois$jour\\.`<br \/>\nif [ -z $commencePar ]; then<br \/>\n        if [ ! -r $annee ]; then<br \/>\n                mkdir $annee<br \/>\n        fi<br \/>\n        if [ ! -r $annee\/$mois ]; then<br \/>\n                mkdir $annee\/$mois<br \/>\n        fi<br \/>\n        if [ ! -r $annee\/$mois\/$jour ]; then<br \/>\n                mkdir $annee\/$mois\/$jour<br \/>\n        fi<br \/>\n        echo $1 > filename.txt<br \/>\n        fichier=`sed -r -e 's\/.*\\\/(.*)\/\\1\/g' filename.txt`<br \/>\n        chemin=`sed -r -e 's\/(.*)\\\/.*\/\\1\/g' filename.txt`<br \/>\n        rm filename.txt<br \/>\n        mv  $1 $chemin\/$annee\/$mois\/$jour\/$annee$mois$jour.$fichier<br \/>\n        ln -s  $chemin\/$annee\/$mois\/$jour\/$annee$mois$jour.$fichier $1<br \/>\nfi<br \/>\n<\/code><br \/>\net son cousin qui l&rsquo;appelle :<br \/>\n<code><br \/>\n#!\/bin\/sh<br \/>\nfind . -maxdepth 1 -name 'P*' -type f -exec rename.sh {} \\; -print<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bon, c&rsquo;est pas tout d&rsquo;avoir un appareil photo num\u00e9rique, mais de temps en temps, faut bien les mettre sur disque dur pour faire de la place sur la carte. Pis apr\u00e8s, faut s&rsquo;y retrouver facilement. Alors, j&rsquo;ai \u00e9crit deux scripts (en fait, trois).<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/posts\/66"}],"collection":[{"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":0,"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/posts\/66\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/media?parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/categories?post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bergeret.org\/blog\/wp-json\/wp\/v2\/tags?post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}