cipherbliss_blog
Outils pour un nommage de fichiers retrouvables
Pour se conformer à une gestion de l'information durable il faut adopter des méthodes fiables sur le long terme, voici donc quelques outils respectueux de la vie privée qui vont nous permettre de mettre tout ceci en place. Mais avant cela, on doit définir ce qui représente une archive propre.
Qu'est-ce qu'une archive propre?
- Aucun fichier en double
- des noms de fichiers uniques, et qui ont du sens
- un système d'étiquetage flexible qui permette des recherches ultra rapides
- des automatismes pour ranger et renommer les choses
- les données sont chiffrées
Les difficultés courantes pour avoir des archives cohérentes et propres telles que définies ci-dessus sont les suivantes:
on a plusieurs supports de taille différentes, datant d'époques différentes
on a à notre disposition les données de plusieurs personnes différentes, qui ont donc chacun leur façon de ranger leurs archives
des informations liées aux fichiers sont parfois stockées non pas dans les fichiers, mais ailleurs comme dans les dossiers qui la contiennent, ou dans des outils séparés, voire pire, en SaaS. Ce qui rend leur déplacement périlleux.
certains fichiers sont redimensionnés pour être publiés en ligne, et peuvent aussi être caché dans des archives zip
les informations de date de création sont erronées et pourrissent les données exif
les noms de fichiers ne sont pas forcément supportés par votre système d'exploitation (coucou windows)
les rythme de changement des données sont inégaux entre les sources qui les produisent. Je ne prends pas autant de photos que de médias sont publiés sur mon instance peertube par exemple.
Différentes tailles de support dans le bazar
Pour pouvoir travailler confortablement, il faut regrouper vos données dans un support de stockage le plus grand possible. On va désigner cet espace par "mon ordinateur d'archivage", en ce qui me concerne c'est une tour dans laquelle j'ai mis des disques en redondance par système de fichier ZFS pour avoir au final 10 To d'espace maximum fort bien répliqué. C'est largement suffisant pour ce que j'ai à gérer, surtout qu'avec BorgBackup les contenus que je sauvegarde sont compressés et dédupliqués. Mais commençons par le tri le plus simple, en utilisant notre explorateur de fichiers.Nos angles d'attaque pour réduire le bazar quand on a aucun outil avancé: l'aplatissement des hiérarchies de dossier, la recherche par format de fichier, la suppression, et le couper coller. On va voir quelques façons plus efficaces bientôt.
Centralisons le bazar dans un seul dossier
Certains préféreront avoir toutes leurs archives dans leur dossier home personnel. Mais je ne le conseille pas, car j'ai des dossiers home variés sur divers ordinateurs, qui n'ont pas tous de quoi stocker l'intégralité de mes archives dans le home personnel. J'ai donc créé un volume ZFS chiffré monté dans un home séparé, le /home/poule (comme un pool de disques, haha!). Et la phrase de passe déchiffrant ce volume est stockée dans mon gestionnaire de mots de passe.Pour commencer vous pouvez faire plus simple et tout mettre dans un sous dossier de votre home, ou dans un autre home vierge. Dedans on va regrouper des trucs à archiver, créons donc un dossier BAZAR, et un autre où on aura des fichiers proprement rangés et dédupliqués.
mkdir -p /home/poule/BAZARmkdir -p /home/poule/stockage-syncable
Couper coller les données depuis les autres supports de stockage (clé usb, disques dur externes, laptop, téléphone, gopro, autres trucs divers et variés) afin de ne pas faire le travail de regroupement en double. Certains dossiers sont identiques et faciles à identifier, surtout si vous les avez récemment rangés, vous pouvez les supprimer sans les regrouper dans le BAZAR.On va pouvoir ensuite rechercher les doublons pour réduire le boulot de mise en qualité.Pour comparer avec ce que l'on a actuellement on va mesurer la taille que prend tout le bazar avant qu'on s'en occupe
du -sch /home/poule/
Vous devriez voir la place prise par l'ensemble de votre dossier poule, notez la dans un coin.
Mise en qualité de notre archive
C'est bien simple, tout ce que vous n'automatisez pas, vous devrez vous le peler à un moment ou un autre, ou faire peser cette responsabilité à quelqu'un d'autre. Mais il ne faut pas se leurrer, vous aurez forcément besoin à un moment ou a un autre de retrouver vos fichier, ou des données qu'ils contiennent. Comme pour les objets physiques, plus on en accumule, plus on devra consacrer de temps à les gérer, ou a vivre avec des poubelles. Moins de corvées à faire, c'est plus de temps pour une vie plus intéressante, donc par pitié, virez des trucs, gérer vos projets de façon à savoir où vous en êtes et automatisez vos tâches. Votre futur vos-même vous en remerciera.Commençons à voir quels outils numériques libres on peut utiliser pour se simplifier la vie.Avant de s'attaquer à nos fichiers il faut avoir dégagé le gros des doublons, et avoir regroupé ensemble les fichiers qui ont le plus de chance d'être proches une fois rangés.
Baobab et Czkawka à la rescousse.Enfin, faites gaffe quand vous faites des modifications massives, il ne faudra pas venir chouiner que vous avez tout bousillé si vous n'avez pas fait de sauvegarde ailleurs et que vous avez cassé vos fichiers important au lieu de juste casser vos fichiers de démonstration. Un bon moyen d'éviter ça c'est d'avoir une bonne stratégie de sauvegarde. Sans oublier la partie "sauvegarde à froid, hors ligne, loin de votre ordinateur habituel, débranchée pour de vrai".
Design de noms de fichiers retrouvables
Voilà ce à quoi on vise pour les noms de fichiers, une structure précise avec des sections optionnelles:
[chemin_de_base]/[catégorie]/[date_iso][descriptif]--[étiquettes][format]
Exemple:
/home/poule/encrypted/stockage-syncable/photos/2023/2023-01-18T13.09.35 fruit du dragon -- nourriture.jpg
Il va nous falloir des outils pour ranger dans un dossier organisé, définir une date en entête du nom, une description, et des tags, avant la fin du nom de fichier contenant son format, et que tout ceci soit suffisamment fluide à utiliser pour qu'on garde ces outils dans la durée, sur des décennies, des sauvegardes qui durent des milliers d'années. Rien que ça oui. Et que l'on puisse restaurer.
Utiliser un vocabulaire contrôlé pour marquer les fichiers
Contrôler les tags à utiliser en les limitant, oui mais comment? On va utiliser un fichier qui va prédéfinir une cinquantaine de mots que l'on va pouvoir appliquer à nos fichiers. Ces tags devront être cohérents dans leur casse: bas de casse, termes au pluriel, un seul mot ou plusieurs mots reliés par des soulignés, suffisamment généraux, et ne pas se recouvrir dans leur sens.On peut aussi les utiliser pour faire de la gestion de projet en définissant un cycle de vie des fichiers, ce qui permettra d'avoir des versions datées et d'indiquer leur état d'avancement dans un tag.Dernier aspect utile: définir la visibilité des fichiers, privés, confidentiels, ou publics quand cette visibilité n'est pas précisée.les brouillons, les versions d'avancement, l'état publié, ou terminé sont des états qui ne se recouvrent pas et permettent de suivre l'état des fichiers par une simple recherche sur leur nom.Commencez par peu de termes, et faites du jardinage en renommant en masse les fichiers au fur et à mesure, mais n'allez pas mettre des tags ne correspondant pas à des cas d'usage de choses que vous aimeriez rechercher plus tard.Avec l'outil Filetags nous allons pouvoir attribuer en masse et avec de l'autocomplétion des tags à une sélection de fichiers.Exemple de fichier .filetags:
amisanimauxbâtimentcartechantierdodofamillefestivalfêtegoprogopro-back gopro-frontgraphhas_no_taghéliaillustrationmaisonmanifnourriturepapierplansélectionvoiturevoyagepublic privatebrouillon final publiéjetématérielportrait
Voyons quels outils on peut utiliser, et après on verra comment les installer.
Ajouter une date au nom de fichier
Beaucoup de fichiers ont un nom qui n'est pas bien utile dans une recherche d'informations.Pour toutes les photos et vidéos que j'ai pris avec mes smartphones et appareil photo, on retrouve un certain schéma de nommage. Je pouvais donc lancer une commande de renommage massif sur tous les fichiers qui correspondaient à ce schéma. En faisant des essais sur plusieurs jeux de fichiers de tests d'abord avant de progressivement lancer le renommage sur des portions de plus en plus grosses de mon dossier de photos.Exiftool à la rescousse! Vous pouvez l'installer avec Apt:
sudo apt install exiftool
# renommer mes fichier DSC*.jpg en leur date et heure.jpgalias ex="exiftool '-filename<FileModifyDate' -d \"%Y-%m-%dT%H.%I.%S%%c.%%le\" -r"alias ex2="exiftool '-filename<DateTimeOriginal' -d \"%Y-%m-%dT%H.%I.%S%%c.%%le\" -r"
C'est un outil qui permet de lire les métadonnées, en écrire, et renommer les fichiers tout en les déplaçant si on le souhaite. Pour que ça reste assez simple, j'ai fait en sorte que mon utilisation d'exiftool ne déplace pas les fichiers, en comptant sur un autre outil présenté ci-après: move2archive.Cependant y'a quelques soucis, certains fichiers perdent des informations exif quand on les déplace.
C'est rare mais ça arrive. il faudra donc les renommer à la mano si l'info est perdue.On peut aussi croiser le problème des informations exif entrées différemment d'un appareil photo à un autre, c'est donc aussi valable quand on change de smartphone. Donc pour les photos récalcitrantes j'ai fait une autre version du script exiftool qui se base sur un autre attribut, celui de la date de modification du fichier.Hey mais, et si pour certains de mes fichiers j'ai déjà une description et que je souhaite la garder? Il me faut un outil qui sache détecter mon schéma de nom de fichiers et ne pas tout péter. Date2Name est là pour ça! Quelle chance!*Date2Name* permet de rajouter une date avec ou sans précision de l'heure en début de nom de fichier.
Ajouter un texte de description
appendfilename est dans la place. il va aller chercher le bon endroit dans le nom de fichier pour ajouter du texte, il dispose d'une option pour aller l'ajouter avant, avec l'option prepend.
Ajouter ou enlever des tags.
filetags va lire notre fichier de vocabulaire controllé .filetags, et nous proposer de rajouter ou enlever des tags à notre sélection de fichiers dans une mini fenêtre de terminal. Pour enlever un tag on le précède d'un moins. Et on peut faire de l'ajout et de la suppression en même temps.
Remplacer les noms de fichiers en masse
Pas besoin d'outil pour cela, dans l'explorateur de fichier Nautilus ou Thunar, vous avez un choix pour rechercher-remplacer dans les noms de fichier.
Ajouter le nom du dossier parent
J'ai rangé pas mal de fichiers en donnant des informations au dossier qui les contient, pour enrichir ces fichiers il me fallait donc une façon automatique de renommer les fichiers en question. Je me suis appuyé sur append file name pour ça et ai produit un script python nommé rename file folder.
Renommer les captures gopro 360
J'ai aussi fait un script perso, mais en bash cette fois, pour le sport: goprorename. Celui ci détermine selon le nom original si il s'agit d'une capture du côté frontal, ou arrière, et renomme en conséquence, tout en gardant en description le nom de fichier original pour suivre la séquence. Je peux ensuite faire du appendfilename pour ajouter une description de la séquence.
Deviner le nom de fichier
un script pour les renommer tous! Si on a suffisamment d'indices dans la structure du nom de fichier, dans ses données exif, ou dans son contenu, on peut le renommer automatiquement, et le mettre au bon endroit.*guessfilename* est là pour ça, il réunit plusieurs considérations précédentes et va tenter de nettoyer les noms de fichiers automatiquement.
Déplacer automatiquement les fichiers
Une fois qu'on a nos fichiers nommés proprement, on peut les déplacer automatiquement. Pour les photos, dans le dossier photos/2023/ par exemple pour les photos prises cette année.
Move2archive est là pour ça.Move2archive dispose d'un fichier de configuration auquel on doit préciser quel est notre dossier racine pour nos archives, afin de les ranger automatiquement dans celui ci. On peut aussi préciser ce dossier avec un paramètre.En cas de fichier dont le nom est identique à l'arrivée, on écrase pas le fichier et on laisse à l'utilisateur le choix de quoi faire avec.
Avoir des alias de commande
votre terminal peut enregistrer des raccourcis de commande, c'est bien pratique et permet d'avoir toujours la flexibilité de la suite de la commande. Exemples d'alias que j'utlise dans mon fichier .bashcustomaliases :
################ personal info management #########alias gf="python $WORKFLOW_PATH/files_management/guessfilename_custom.py"alias rff="python $WORKFLOW_PATH/files_management/rename_photo_folder.py"alias m2a="move2archive --archivepath $stockage_syncable_folder/photos"alias ex="exiftool '-filename<FileModifyDate' -d \"%Y-%m-%dT%H.%I.%S%%c.%%le\" -r"alias ex2="exiftool '-filename<DateTimeOriginal' -d \"%Y-%m-%dT%H.%I.%S%%c.%%le\" -r"alias exgps="exiftool '-filename<GPSDateTime' -d \"%Y-%m-%dT%H.%I.%S%%c -- has_gps.%%le\" -r"
Installer les outils
Par ici pour l'installation de tous ces outils avec un seul script
git clone https://forge.chapril.org/tykayn/scriptscd scripts/bash/file_managementbash install.sh
Chacun de ces outils est utilisable dans un terminal, mais ce n'est pas forcément le plus pratique. Pouvoir les utiliser en sélectionnant des fichiers dans notre explorateur de fichier favori, ou dans un gestionnaire de gallerie qui permet de lancer des scripts avec des raccourcis clavier personnalisables c'est tout de même vachement plus utilisable au quotidien.Enjaillez!