Utilisation de la commande «Basename» pour lire le nom de fichier
La commande 'Basename' est utilisée pour lire le nom du fichier sans extension à partir d'un répertoire ou d'un chemin de fichier.
Syntaxe:
Nom du nom de basen [suffixe]
ou
Option de nom de base… Nom…
Ici, le nom peut contenir le nom de fichier ou le nom de fichier avec un chemin complet. Le suffixe est facultatif et il contient la partie d'extension de fichier que l'utilisateur souhaite supprimer. La commande 'Basename' a certaines options qui sont décrites ci-dessous.
Options
Nom | Description |
-un | Il est utilisé pour passer plusieurs noms de fichiers avec un chemin ou sans chemin comme arguments de commandement. |
-s | Il est utilisé pour passer l'extension comme suffixe qui doit supprimer. |
-z | Il est utilisé pour afficher les plusieurs noms de fichiers en séparant chaque fichier avec null. |
-aider | Il est utilisé pour afficher les informations de l'utilisation de la commande «Basename». |
-version | Il est utilisé pour afficher les informations de la version. |
Exemple-1: Utilisation du nom et du suffixe
La commande «Basename» suivante récupérera le nom de fichier avec extension. Le suffixe est omis de cette commande. Ici, la sortie est 'produit.SMS'.
$ Basename / Home / Fahmida / Code / Produit.SMS
Si vous souhaitez récupérer le nom de fichier sans extension, vous devez fournir l'extension de fichier en tant que suffixe avec la commande «Basename». Ici, l'extension est «.SMS". Exécutez la commande suivante pour supprimer l'extension du fichier.
$ Basename / Home / Fahmida / Code / Produit.SMS .SMS
Exemple-2: Utilisation de l'option et nom «-a»
L'utilisation de l'option «-a» de la commande «Basename» est affichée dans cet exemple. Ici, deux chemins de fichier sont passés comme arguments avec la commande «Basename». Chaque nom de fichier avec extension se récupère à partir du chemin et imprimera par Newline.
$ Basename -a / Home / Fahmida / Index.HTML / HOME / FAHMIDA / CODE / EMP.SMS
Exemple-3: Utilisation de l'option et nom «-z»
L'option '-z' est utilisée avec la commande 'Basename' pour imprimer les multiples noms de fichiers avec une valeur null au lieu de Newline. La commande suivante utilise deux options ensemble, '-a' et '-z'. Ici, deux noms de fichiers, indice.html et empiler.SMS Imprimera sans aucun espace ni nouvelle ligne.
$ Basename -Az / Home / Fahmida / Index.HTML / HOME / FAHMIDA / CODE / EMP.SMS
Exemple-4: Utilisation de l'option et nom «-s»
La commande suivante peut être utilisée comme alternative de suffixe avec «nom de base». L'extension du fichier doit passer avec l'option '-sh' pour supprimer l'extension de fichier du fichier. L'exemple suivant supprimera l'extension, «-sh» du fichier, «ajout.sh '.
$ Basename -s .ajout de sh.shot
Exemple-5: supprimer l'extension du fichier sans suffixe
Si vous ne connaissez pas l'extension du fichier que vous souhaitez retirer du nom de fichier, cet exemple vous aidera à résoudre le problème. Créer un fichier nommé read_file.shot avec le code suivant pour récupérer le nom de fichier de toute extension. La commande 'SED' est utilisée dans cet exemple pour supprimer tout type d'extension du nom de fichier. Si vous exécutez le script, la sortie sera 'moyenne«Après avoir retiré l'extension»py'.
read_file.shot
#!/ bac / bash
# Définissez le nom de fichier avec le chemin
filename = "/ home / fahmida / code / moyenne.py "
# Lisez le nom de fichier sans extension en utilisant la commande «BasName» et «SED»
Echo "$ (Basename" $ FileName "| S / \ SED (.*\)\… */\1/')"
Exécutez le script.
$ bash read_file.shot
Exemple-6: convertir l'extension de fichier de Txt en docx
Le nom de fichier sans extension doit convertir le fichier d'une extension en une autre. Cet exemple montre que vous pouvez modifier l'extension de tous les fichiers texte (.txt) dans les fichiers Word (.docx) en utilisant la commande 'Basename' dans le script bash. Créer un fichier nommé, convert_file.shot avec le code suivant. Ici, une boucle for-in est utilisée pour lire tous les fichiers texte avec ".SMS" Extension du répertoire actuel. Le nom de fichier sans extension est lu par la commande «Basename» et renommé en ajoutant «.Extension docx ”dans chaque itération de la boucle.
convert_file.shot
#!/ bac / bash
# La boucle lira chaque fichier texte dans le répertoire actuel
pour le nom de fichier dans 'LS *.SMS'
faire
# Imprimez le nom de fichier de texte avant la conversion
Echo "Nom de fichier avant conversion: $ nom de fichier"
# Modifiez l'extension du fichier txt en docx
MV - "$ FileName" "$ (Basename -" $ filename " .SMS).docx "
fait
Exécutez le script.
$ bash convert_file.shot
Vérifiez que les fichiers texte sont convertis ou non à l'aide de la commande «LS».
$ ls
Exemple-7: Lire le nom de fichier sans extension en utilisant l'expansion des paramètres du shell
L'expansion des paramètres de coque est une autre façon de lire le nom de fichier sans extension en bash. Cet exemple montre les utilisations de l'expansion des paramètres de coque. La commande suivante stockera le nom du fichier dans la variable, $nom de fichier.
$ filename = "/ var / usr / temp / myfile.le goudron.gz "
La commande suivante supprimera tous les types d'extension du chemin et stockera le chemin du fichier sans extension dans la variable, $ fichier1.
$ file1 = "$ nom de fichier %%.* "
La commande suivante imprimera le nom de fichier uniquement à partir du chemin. Ici, la sortie seramon fichier'.
$ echo "$ file1 ## * /"
Si le nom de fichier contient deux extensions avec deux points (.) Et vous souhaitez lire le nom de fichier en supprimant la dernière extension du fichier, alors vous devez utiliser la commande suivante. Exécutez la commande suivante qui stockent le chemin du fichier dans la variable, $ file2 en supprimant la dernière extension du fichier.
$ file2 = "$ nom de fichier%.* "
Maintenant, exécutez la commande suivante pour imprimer le nom de fichier avec un point (.) extension. Ici, la sortie sera "mon fichier.le goudron".
$ echo "$ file2 ## * /"
Le nom de fichier sans extension est requis à diverses fins. Certaines utilisations du nom de fichier sans extension sont expliquées dans ce tutoriel en utilisant quelques exemples tels que la conversion de fichiers. Ce tutoriel aidera les utilisateurs qui souhaitent apprendre les moyens de séparer le nom et l'extension du fichier du chemin du fichier. Deux façons sont expliquées ici. L'utilisateur peut suivre n'importe laquelle de ces moyens pour extraire le nom de fichier uniquement à partir du chemin du fichier.