Trucs de geek : diverses commandes bash

Cet article vous présente quelques commandes utilisables dans vos scripts bash.

Dirname:

Cette commande permet de récupérer le nom du dossier dans un  nom complet de fichier. Soit le fichier '/home/jfdigonnet/Documents/sonnerie.mp3'. La commande :

$ dirname /home/jfdigonnet/Documents/sonnerie.mp3

donne :

/home/jfdigonnet/Documents

sans le séparateur final. Dans un script la commande suivante :

$ cd `dirname $0`

vous place dans le dossier où est le script que vous souhaitez exécuter.

Basename :

Supprime le dossier et l'extension du nom d'un fichier si elle est précisée. Dans le cas précédent pour  :

$ basename /home/jfdigonnet/Documents/sonnerie.mp3

Cela donne simplement "sonnerie.mp3". Et pour :

$ basename -s .mp3 /home/jfdigonnet/Documents/sonnerie.mp3

Ceal donne "sonnerie". Attention à ne pas oublier de préciser le point. Aisnsi avec cette commande vous pouvez facilement récupérer le nom d'un fichier avec ou sans son extension pour le renommer ou changer son extension.

Changer l'extension d'un fichier :

Deux instructions sont possibles :

$ echo $(basename $0|sed "s/.sh$/.log/")

$ echo $(basename -s .sh $0).log

Votre script (foo.sh) permettra de générer un fichier log sous le nom de "foo.log".

Fait le 11/09/2018