💰💌 Si tu te procures un abonnement d'un an au forfait premium de Oui, mais je LLM d'ici le 30 novembre, je t'offre en prime mes quatre formations autodidactes, une valeur de 276 $ ! Clique ici !" 💰💌

Potion Bottle Icon Manuel d'alchimie du code Potion Bottle Icon

Créer des répertoires alphabétiques avec Bash

- 398 mots - Temps de lecture estimé: 2 minutes

Je te partage aujourd’hui un script dans le langage bash qui va te permettre de classer un répertoire de fichiers dans des sous-répertoires alphabétiques. Plus un répertoire contient de fichiers, plus il devient long à traiter.

Ces instructions sont valides pour macOS, Linux ou si tu utilises le sous-système Windows pour Linux (WSL).

Voici pourquoi je te recommande cette pratique. À chaque fois qu’un ordinateur entre dans un répertoire, il doit lire tout son index pour pouvoir déterminer la position de chaque fichier sur un disque dur. C’est une opération qui prend un temps proportionnel au nombre de fichiers et de dossiers qu’il contient.

Si on sépare les fichiers dans des sous-répertoires alphabétiques, le traitement est beaucoup plus rapide, parce qu’il va y avoir seulement 26 répertoires au premier niveau, et chacun de ceux-ci va contenir en moyenne 26x moins de fichiers !

Le navigateur de fichiers Dolphin affichant des répertoires alphabétiques

Le navigateur de fichiers Dolphin de KDE

🌘 À vos terminaux !

C’est ce que nous allons faire ici en utilisant la ligne de commande bash (ou zsh, avec le superbe Oh My Zsh, fortement recommandé, surtout sur macOS).

On définit tout d’abord la séquence des répertoires que l’on veut créer (qu’on appellera prefix, car se sont les préfixe des fichiers à classer). On peut aussi ajouter des chiffres ou d’autres caractères dans cette séquence.

Note qu’ici, j’assume que tous les noms de fichiers sont en minuscules.

# Créer la liste des préfixes prefix=(a b c d e f g h i j k l m n o p q r s t u v w x y z)

On initialise un compteur à 1

# Initialiser le compteur i=1

Ensuite, on définit une boucle while de la longueur de notre liste de préfixes. Ici, c’est 26.

# Créer la boucle while [ ${i} -le 26 ]

À l’intérieur de cette boucle, nous allons effectuer ces trois opérations, pour chacun des préfixes que contient la séquence prefix.

# Lister les commandes à exécuter dans la boucle do
  # Créer un répertoire
  mkdir ${prefix[${i}]}
  # Déplacer les fichiers dans le bon répertoire
  mv ${prefix[${i}]}* ${prefix[${i}]}/
  # Incrémenter le compteur
  (( i++ )) done

Si on met tout ça ensemble, voici le résultat:

# Créer la liste des préfixes prefix=(a b c d e f g h i j k l m n o p q r s t u v w x y z)
# Initialiser le compteur i=1
# Créer la boucle while [ ${i} -le 26 ]
# Lister les commandes à exécuter dans la boucle do
  # Créer un répertoire
  mkdir ${prefix[${i}]}
  # Déplacer les fichiers dans le bon répertoire
  mv ${prefix[${i}]}* ${prefix[${i}]}/
  # Incrémenter le compteur
  (( i++ )) done

J’espère t’avoir aidé dans ton grand ménage du printemps informatique !

Pour découvrir Bash, je t’invite à suivre ce tutoriel sur Wikibooks.

🌘 Le monde de la ligne de commande t’intrigue ?

Une session de démarrage et un parcours d’apprentissage personnalisé avec mon service Consultation Express

Shooting Stars IconConsultation ExpressShooting Stars Icon

Bénéficie d'une heure de consultation dédiée avec François pour résoudre tes défis informatiques et stratégiques. Que ce soit pour la migration vers des technologies libres, la sécurisation de tes systèmes, la documentation de tes procédures, la conception de petits systèmes ou l'automatisation de tâches, cette session intensive t'offre des solutions concrètes et un plan d'action clair.

Tu seras libre ensuite de poursuivre avec un forfait de consultation sur mesure ou les programmes DéconstruIT ou Pleine Confiance

Découvre la Consultation Express.
Abonne-toi au fil RSS pour ne rien manquer.

Étiquettes