création fichier et répertoire

Attention, question très basique!
Je voudrais faire un fichier de conf pour un script bash.
Je fais un test si le fichier existe, ça c’est pas trop dur.
Si il n’existe pas, je voudrais en une seule commande créer un répertoire (si il n’existe pas), et y créer le fichier de conf dedans.

j’ai essayé, touch, cat, mais je n’arrive pas à créer le répertoire + le fichier
quelle est l’astuce ?

mkdir dd && touch bob

:slightly_smiling:

Le chemin complet du fichier est dans une variable, c’est ça le problème. Je n’ai pas envie de découper le chemin pour faire un mkdir et un touch.
On ne peut pas tout faire d’un coup ?

Bonjour,

Tu peux faire comme ceci mais ce n’est pas en une seule commande :

Variable TEST définit ainsi :

mkdir -p $(dirname $TEST) touch $TEST

Merci, je teste ça ce soir (et je me documente sur dirname !)

ça marche pas:

config_file='~/.convertlog/config.cfg'

je n’a pas de message d’erreur, mais le rep n’est pas créé.

mkdir -v "$(dirname $config_file)" mkdir: ne peut créer le répertoire `~/.convertlog': Le fichier existe

Et pourtant dans /home/moi/ je n’ai pas de .convertlog

Bonjour,

Il faut pas que tu mettes de côte simple pour l’initialisation de la variable config_file. C’est pas génial mais sinon il arrive pas à convertir la valeur de ~/

Edit : Si tu veux créer ton repertoire dans le home du user initialise ta variable comme ceci plutot :

Rien à faire, il ne converti pas le $HOME

$config_file bash: $HOME/.convertlog/config.cfg: Permission non accordée

C’est quand même bizarre qu’un truc si simple soit si compliquer à faire.

Bonjour,

Il ne faut pas mettre des simple cote mais des doubles comme je l’ai mis dans mon exemple précédent.

ça m’avait échappé, ça marche effectivement comme ça.
Il va falloir que je révise les double et simple quotes, c’est loin tout ça!
merci pour le coup de main.