Le chemin complet d'un fichier sous Linux fait référence à l'adresse complète, y compris les répertoires et sous-répertoires à l'aide desquels le fichier peut être localisé. Chaque système d'exploitation a différentes variantes du chemin complet d'un fichier.
Sous Linux, cela ressemble à ceci :
/home/user/Documents/test.txt
Il s'agit du chemin d'accès complet au fichier test.txt .
Lorsque vous traitez manuellement un chemin de fichier, il est facile d'obtenir le nom du fichier, mais si vous utilisez un script pour une sorte d'automatisation, vous devrez peut-être extraire le nom du fichier dans certains scénarios.
Voyons comment extraire le nom de fichier du chemin complet sous Linux.
Utilisation de la commande Basename
Le but de la commande basename est de récupérer le nom de fichier à partir d'un chemin de fichier. Bien qu'il ne soit pas trop difficile d'obtenir le nom de fichier à partir d'un chemin complet, basename le fait automatiquement pour vous et vous n'avez pas à vous soucier d'analyser le chemin du fichier, etc.
La syntaxe est :
$ basename full_file_path $ basename /var/log/syslog [example command]
Utilisez le -a
un argument pour passer plusieurs chemins.
$ basename -a /var/log/syslog /var/log/dpkg.log
Utilisation de la substitution de paramètres bash
Substitutions de paramètres bash sont un moyen de modifier une variable à la volée. Par conséquent, pour utiliser cette méthode, nous devons stocker le chemin du fichier dans une variable.
$ fullpath="/var/log/syslog"
Nous allons maintenant appliquer la substitution de paramètre et stocker la valeur dans une autre variable.
$ filename=${fullpath##*/} $ echo $filename
Fondamentalement, ce que cela fait est que :il détruit la partie avant le dernier ‘/’
dans 'chemin complet ' et conserve simplement le reste de la chaîne, qui n'est rien d'autre que le nom du fichier.
Conclusion
Dans cet article, nous avons découvert deux façons d'obtenir un nom de fichier à partir d'un chemin de fichier complet sous Linux. Si vous souhaitez en savoir plus sur la commande basename et paramètre substitutions dans Bash, assurez-vous de parcourir leurs pages de manuel respectives avec :
$ man basename $ man bash
Merci d'avoir lu et faites-nous part de vos réflexions et questions ci-dessous !