mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
372 lines
16 KiB
Org Mode
372 lines
16 KiB
Org Mode
![]() |
|
||
|
:PROPERTIES:
|
||
|
:ID: 294c870d-2e70-4b99-8254-271e7c53c735
|
||
|
:END:
|
||
|
|
||
|
#+title: outils-pour-un-nommage-de-fichiers-retrouvables
|
||
|
#+post_ID: 1749
|
||
|
#+post_slug: outils-pour-un-nommage-de-fichiers-retrouvables
|
||
|
#+post_url: https://www.ciperbliss.com/2023/outils-pour-un-nommage-de-fichiers-retrouvables
|
||
|
#+post_title: Outils pour un nommage de fichiers retrouvables
|
||
|
#+post_tags: pim, archives
|
||
|
#+post_type: post
|
||
|
#+post_mime_types:
|
||
|
#+post_guid: undefined
|
||
|
#+post_status: publish
|
||
|
#+post_date_published: <2023-04-10T15:04:34>
|
||
|
#+post_date_modified: <2023-04-13T10:00:30>
|
||
|
#+post_index_page_roam_id: fa7f2a8c-2b94-4e42-bb4c-25c026ed7ff9
|
||
|
#+retrieved_from_db_at: <2024-11-18 16:25:08>
|
||
|
|
||
|
|
||
|
* Outils pour un nommage de fichiers retrouvables
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: outils-pour-un-nommage-de-fichiers-retrouvables
|
||
|
:END:
|
||
|
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?
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: quest-ce-quune-archive-propre
|
||
|
:END:
|
||
|
|
||
|
- 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:
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: les-difficultés-courantes-pour-avoir-des-archives-cohérentes-et-propres-telles-que-définies-ci-dessus-sont-les-suivantes
|
||
|
:END:
|
||
|
|
||
|
- 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 [[https://peertube.cipherbliss.com][mon instance
|
||
|
peertube]] par exemple.
|
||
|
|
||
|
|
||
|
** Différentes tailles de support dans le bazar
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: différentes-tailles-de-support-dans-le-bazar
|
||
|
:END:
|
||
|
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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: centralisons-le-bazar-dans-un-seul-dossier
|
||
|
:END:
|
||
|
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
|
||
|
[[https://www.cipherbliss.com/comment-ne-plus-perdre-de-temps-avec-ses-mots-de-passe/][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.
|
||
|
|
||
|
#+begin_example
|
||
|
mkdir -p /home/poule/BAZARmkdir -p /home/poule/stockage-syncable
|
||
|
#+end_example
|
||
|
|
||
|
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
|
||
|
|
||
|
#+begin_example
|
||
|
du -sch /home/poule/
|
||
|
#+end_example
|
||
|
|
||
|
Vous devriez voir la place prise par l'ensemble de
|
||
|
votre dossier poule, notez la dans un coin.
|
||
|
|
||
|
** Mise en qualité de notre archive
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: mise-en-qualité-de-notre-archive
|
||
|
:END:
|
||
|
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.
|
||
|
[[https://www.cipherbliss.com/supprimer-les-doublons-avec-un-baobab-et-czkawka/][*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'[[https://www.cipherbliss.com/plan-darchivage-et-de-backup/][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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: design-de-noms-de-fichiers-retrouvables
|
||
|
:END:
|
||
|
Voilà ce à quoi on vise pour les noms de fichiers,
|
||
|
une structure précise avec des sections optionnelles:
|
||
|
|
||
|
#+begin_example
|
||
|
[chemin_de_base]/[catégorie]/[date_iso][descriptif]--[étiquettes][format]
|
||
|
#+end_example
|
||
|
|
||
|
Exemple:
|
||
|
|
||
|
#+begin_src prettyprinted
|
||
|
/home/poule/encrypted/stockage-syncable/photos/2023/2023-01-18T13.09.35 fruit du dragon -- nourriture.jpg
|
||
|
#+end_src
|
||
|
|
||
|
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,
|
||
|
[[https://www.cipherbliss.com/des-sauvegardes-qui-durent-mille-ans/][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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: utiliser-un-vocabulaire-contrôlé-pour-marquer-les-fichiers
|
||
|
:END:
|
||
|
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:
|
||
|
|
||
|
#+begin_example
|
||
|
amisanimauxbâtimentcartechantierdodofamillefestivalfêtegoprogopro-back gopro-frontgraphhas_no_taghéliaillustrationmaisonmanifnourriturepapierplansélectionvoiturevoyagepublic privatebrouillon final publiéjetématérielportrait
|
||
|
#+end_example
|
||
|
|
||
|
Voyons quels outils on peut utiliser, et après on
|
||
|
verra comment les installer.
|
||
|
|
||
|
** Ajouter une date au nom de fichier
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: ajouter-une-date-au-nom-de-fichier
|
||
|
:END:
|
||
|
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:
|
||
|
|
||
|
#+begin_example
|
||
|
sudo apt install exiftool
|
||
|
#+end_example
|
||
|
|
||
|
|
||
|
#+begin_example
|
||
|
# 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"
|
||
|
#+end_example
|
||
|
|
||
|
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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: ajouter-un-texte-de-description
|
||
|
:END:
|
||
|
*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.
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: ajouter-ou-enlever-des-tags.
|
||
|
:END:
|
||
|
*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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: remplacer-les-noms-de-fichiers-en-masse
|
||
|
:END:
|
||
|
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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: ajouter-le-nom-du-dossier-parent
|
||
|
:END:
|
||
|
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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: renommer-les-captures-gopro-360
|
||
|
:END:
|
||
|
J'ai aussi fait un script perso, mais en bash cette
|
||
|
fois, pour le sport: *gopro_rename*. 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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: deviner-le-nom-de-fichier
|
||
|
:END:
|
||
|
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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: déplacer-automatiquement-les-fichiers
|
||
|
:END:
|
||
|
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
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: avoir-des-alias-de-commande
|
||
|
:END:
|
||
|
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 /.bash_custom_aliases/ :
|
||
|
|
||
|
#+begin_example
|
||
|
################ 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"
|
||
|
#+end_example
|
||
|
|
||
|
|
||
|
** Installer les outils
|
||
|
:PROPERTIES:
|
||
|
:CUSTOM_ID: installer-les-outils
|
||
|
:END:
|
||
|
Par ici pour
|
||
|
[[https://forge.chapril.org/tykayn/scripts/src/branch/master/bash/file_management][l'installation
|
||
|
de tous ces outils avec un seul script]]
|
||
|
|
||
|
#+begin_example
|
||
|
git clone https://forge.chapril.org/tykayn/scriptscd scripts/bash/file_managementbash install.sh
|
||
|
#+end_example
|
||
|
|
||
|
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!
|
||
|
|