sort de problème

Je n’utilise toujours pas Adobe Lightroom pour classer mes photos. Honte à moi. Je vous en parlais quand je vous expliquais que j’avais des p-raw-blèmes avec mes raws.

Je n’utilise toujours pas Lightroom, mais pour ma défense, il ne s’est passé que quelques dizaines de minutes entre l’écriture de ces deux articles. Peut-être qu’à leurs publications, je serai un utilisateur hardant défenseur du catalogue Lightroom.

Le problème

Mais revenons à notre sujet. Lorsque je tri mes photos, je les classes dans des dossiers datés du jour de la prise de vue.

phototeque
|-- 2022
|-- |-- 20220101-jour-de-lan
|-- |-- 20220214-saint-valentin

C’est facile si vous déchargez les photos le jour de leur prises de vues. Ou le lendemain. On n’importe quand, tant qu’il n’y a pas eu d’autres prises d’autres jours, au quel cas il vous faut chercher les photos prises le premier jour, le deuxième…

Parce que le faire à la main peut être long et fastidieux.

La solution

Il me fallait donc une solution simple pour créer un dossier par jour de prise de vues et déplacer les fichiers dans les bons dossiers.

J’ai donc écrit une petite fonction qui permet de faire ça. Il y a sans doute plus efficace, les plus aficionados sauront sans doute le faire en une ligne, mais cette solution à le mérite de sortir de ma tête.

psort() {
    CURRENT_DIR=$(pwd)

    if [ -d "$1" ];
    then
        WORK_DIR="$1"
    else
        WORK_DIR=$(pwd)
    fi

    cd "$WORK_DIR"

    for f in $(find . -maxdepth 1 -type f);
    do
        #echo file name without path
        FILENAME=$(basename "$f")
        if [[ $FILENAME != ".DS_Store" ]];
        then
            mkdir -p $(date -r $f +"%Y%m%d")
            mv $f $(date -r $f +"%Y%m%d")
        fi
    done

    cd "$CURRENT_DIR"
}

Le script est simple dans son fonctionnement. On regarde tous les fichiers qui sont à la racine du répertoire de travail (qui peut être passé en paramètre, sinon c’est le répertoire courant).

Pour chaque fichier, on crée un dossier avec pour nom la date de création du fichier. La commande mkdir -p permet de ne pas recréer un dossier si il en existe déjà un avec ce nom.

Pour finir, on déplace le fichier dans le dossier. On fais ça pour tous les fichiers et on est bon.

Je n’ai qu’à taper psort dans mon terminal pour trier mes photos par jour.

Les deux bémols

  • Il faut encore renommer tous les dossiers avec le nom de l’événement ;
  • Si plusieurs événements ont eu lieu sur le même jours, il faut encore les séparer dans le dossier du jour créé.