Utiliser la commande basename dans les scripts Bash

Popular:
AMÉLIOREZ VOTRE CONFIGURATION DE SERVEUR ! APPLIQUEZ AVA ET LANCEZ AVEC UN 15 % DE REMISE
UTILISEZ LE CODE PROMO :

Utilisation de la commande basename dans les scripts Bash

Dans le scripting Bash, l’une des tâches les plus courantes consiste à manipuler les chemins de fichiers, en particulier lorsque vous souhaitez extraire uniquement le nom du fichier à partir d’un chemin complet. C’est là que la commande basename entre en jeu. Bien que cela semble simple, basename a des cas d’utilisation puissants lorsqu’il est utilisé correctement dans des scripts plus complexes, des outils d’automatisation, services d’hébergement et des environnements CI/CD.

Qu’est-ce que basename ?

La commande basename supprime le chemin du répertoire et, en option, retire une extension de fichier, ne laissant que le nom de base (le dernier composant d’un chemin de fichier).

🔧 Syntaxe de base :

✅ Exemples simples :

Pourquoi utiliser basename dans les scripts ?

Voici quelques exemples de besoins de scripting dans le monde réel :

Cas d’utilisation pratiques dans les scripts Bash

📁 1. Boucle sur les fichiers avec journalisation

Ce script boucle sur les fichiers .log, extrait le nom sans extension et journalise chaque action. basename simplifie la gestion des noms de fichiers sans découpage complexe de chaînes.

📂 2. Utilisation de basename pour des chemins de fichiers dynamiques

Disons que vous recevez des chemins complets à partir de l’entrée utilisateur ou d’un autre processus :

Utiliser basename dans votre script garantit la flexibilité lors du travail avec des chemins de fichiers dynamiques, en particulier dans des environnements comme un VPS Linux où les journaux, les fichiers de configuration et les sauvegardes peuvent se trouver dans différents répertoires. Cela rend votre script robuste, qu’il reçoive un chemin complet comme /var/log/syslog ou un fichier relatif comme ./config.txt.

🧪 3. Combinaison de basename avec dirname

Utilisez-les ensemble pour isoler les éléments de chemin :

Suppression des extensions de fichier avec basename

Si vous souhaitez supprimer des extensions connues :

⚠️ Remarque : Cela ne fonctionne que si le suffixe correspond exactement. Donc .txt fonctionne, mais .TXT ou .tar.gz ne fonctionneront pas à moins d’être spécifiés explicitement.

Pour plusieurs extensions, combinez basename avec d’autres outils :

Ou :

basename vs Expansion de paramètres

Bien que basename soit intuitif, il engendre un sous-processus. Pour les scripts critiques en termes de performance ou les grandes boucles, préférez les alternatives Bash pur :

Équivalent natif Bash :

Supprimer l’extension avec Bash natif :

✅ Plus rapide que d’appeler basename externe.

Exemple : Renommer des fichiers en masse

Disons que vous souhaitez préfixer tous les fichiers .jpg avec la date d’aujourd’hui :

Cela utilise basename pour préserver les noms d’origine tout en ajoutant une chaîne personnalisée.

Utilisez basename “$0” pour les introductions de script