Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/11/2009, à 23:08

newbie_ubuntu

[Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

Bonjour,

Je suis en train de m'initier aux fichiers BASH (j'espère que la terminologie est correcte, sinon, ne m'en tenez pas rigueur : je débute :-) ).

Pour mon premier script, je souhaite réaliser, via ftp, des backups d'un site web.

En plus des fichiers du site proprement dit, je souhaite également rapatrier en local les sauvegardes des bases de données réalisées par mon hébergeur (pour rapatrier tout ça j'utilise WGET, que j'ai réussi à paramétrer sans trop de soucis. Le hic est ailleurs).


Les dossiers destination des sauvegardes se situent sur mon disque dur.

Pour chaque sauvegarde je crée un dossier nommé avec la date et heure du jour puis un sous-dossier pour les fichiers du site et un autre sous-dossier pour les sauvegardes des bases.

En cherchant un peu ici et ailleurs sur le net, j'ai trouvé comment récupérer la date système dans une variable, à savoir :

DATEBACKUP=$(date "+%Y-%m-%d %H:%M:%S")

Pas de problème non plus pour changer de dossier :

cd nom_de_dossier

En créer un à la date du jour :

mkdir $DATEBACKUP

Sauf que...

La variable DATEBACKUP contient 2009/11/19 21:38:47

mais le dossier créé s'intitule 2009/11/19 et non 2009/11/19 21:38:47

Il manque l'heure... Tout ça pourquoi ? Parce qu'il y a une espace dans la chaîne date/heure... (je crois)

Alors, via un script, comment fait-on pour créer un dossier avec une variable dont le contenu contient une espace ?


Plus généralement, ou dans un cas comme celui-ci, comment gère-t-on les espaces dans les noms de dossiers ?

Par exemple, pour changer de dossier je pensais faire :

DOSSIER="/home/moi/Documents/Sites/site numero1/backups"
cd $DOSSIER

mais le script renvoie :

 cd: /home/moi/Documents/Sites/site : Aucun fichier ou dossier de ce type

J'ai aussi essayé un \ avant l'espace dans le nom de dossier :

DOSSIER="/home/moi/Documents/Sites/site\ numero1/backups"
cd $DOSSIER

mais j'ai un message d'erreur similaire.

Evidemment, je pourrais me passer de la variable et écrire directement :

cd "/home/moi/Documents/Sites/site numero1/backups"

Mais cela ne me satisfait pas sur le plan intellectuel, je voudrais savoir comment faire en passant via une variable ;-)



Faut-il remplacer l'espace par son code ASCII ? Il y a-t-il un autre moyen ?

Un grand merci par avance pour vos réponses :-)

Dernière modification par newbie_ubuntu (Le 19/11/2009, à 23:25)

Hors ligne

#2 Le 19/11/2009, à 23:15

Grünt

Re : [Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

DOSSIER="un nom avec plein d'espaces"
cd "$DOSSIER"

Red flashing lights. I bet they mean something.

Hors ligne

#3 Le 19/11/2009, à 23:17

heuuuuu

Re : [Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

salut

As-tu essayé

mkdir "$DATEBACKUP"

Arf, grillé

Dernière modification par heuuuuu (Le 19/11/2009, à 23:18)


Quand les avions en papier ne partent plus au vent
On se dit que l'bon temps passe finalement...
...comme une étoile filante
http://forum.ubuntu-fr.org/viewtopic.php?id=139410

Hors ligne

#4 Le 19/11/2009, à 23:18

n3o51

Re : [Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

DOSSIER="/home/moi/Documents/Sites/site\ numero1/backups"
cd "$DOSSIER"

ça passe aussi je crois smile


Welcome to the real world
________________________________

Hors ligne

#5 Le 19/11/2009, à 23:22

newbie_ubuntu

Re : [Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

Génial ! Ça marche avec "$DOSSIER"  :-)

(sans l'anti-slash dans le nom)

Merci beaucoup :-)

Hors ligne

#6 Le 19/11/2009, à 23:48

Grünt

Re : [Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

Preeeeeeeeeum's, j'vous ai grilled tongue cool lol
smile


Red flashing lights. I bet they mean something.

Hors ligne

#7 Le 20/11/2009, à 16:45

sputnick

Re : [Résolu]Fichiers BASH, variables, espaces et noms dossiers/fichiers

Backup LAMP via ftp ? http://www.sputnick-area.net/ftp/downloads/back-lftp.bash
Regardes l'explication au début du script. Ya un roulement de 3 semaines, au delà les backups sont effacés. Bon, ok c'est pas toi qui l'a codé, mais il est grandement fonctionnel et paramétrable.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne