IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

gérer un espace dans le nom d'un répertoire ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut gérer un espace dans le nom d'un répertoire ?
    Je tente en vain de developper un script de sauvegarde sur disque dur usb Western digital sous ubuuntu. le "hic" c'est qu'il me monte mon disque toujours en /media/WD Disk, l'espace entre les 2 D entrainant en conflit avec mes variables.

    souce = /home/toto
    destination = /media/WD Disk ne fonctionne pas.

    erreur du script généré : "répertoire de destination introuvable"

    J'ai essayé /media/WD\ Disk .....ne fonctionne pas non plus ???

    est-il possible de modifié le Label du disk pour avoir ex: WD_DISK ?

    Merci d'avance

    K.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    Histoire d'être plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    # !/bin/sh
    #
    ################ DEFIBITION DES VARIABLES :
    # Date:
    DATE=$(date +%Y%m%d_%H.%M)
    # Dossier source Php de Paracelse :
    REPERTOIRE_SOURCE_PHP="/var/www/paracelse/"
    # Dossier destination:
    REPERTOIRE_DESTINATION="/media/WD Disk"
    # Dossier destination de la sauvegarde PHP de Paracelse:
    REPERTOIRE_DESTINATION_PHP="/media/WD Disk/paracelse_save/php"
    # Dossier destination de la sauvegarde MYSQL de Paracelse:
    REPERTOIRE_DESTINATION_MYSQL="/media/WD Disk/paracelse_save/mysql"
     
    ############### Disque USB présent ?
    # Détecter la présence du volume
    # de destination
    # et interrompre l'opération si nécessaire :
    if [ ! -e "$REPERTOIRE_DESTINATION" ]
    then
    echo "Attention, l'unité de sauvegarde n'est pas présente..."
    exit
    fi
     
    ############### Sauvegarde :
    ## MYSQL :
    # Renommage de la sauvegarde précédente :
    for i in `ls $REPERTOIRE_DESTINATION_MYSQL/*.sql`;
    do
    mv $i $i.old
    done
     
    ## Sauvegarde Base Paracelse :
    mysqldump -u root -pChloe28Leo29 --opt paracelse -h localhost | cat > $REPERTOIRE_DESTINATION_MYSQL/$DATE.sql
    ## Suppression de la précédente sauvegarde:
    if [ -f `ls $REPERTOIRE_DESTINATION_MYSQL/*.sql` ]
    then
    rm -rf $REPERTOIRE_DESTINATION_MYSQL/*.sql.old
    else
    echo "La sauvegarde n'a pas été faite"
    exit
    fi
     
    ## PHP :
    # Sauvegarde des dossiers Paracelse du site:
    rsync -a --delete --stats --progress --ignore-errors $REPERTOIRE_SOURCE_PHP $REPERTOIRE_DESTINATION_PHP

  3. #3
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    Essaie de faire :
    cd "$mavariable"

    (en remplaçant cd par tes commandes... )

  4. #4
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par krislec Voir le message
    souce = /home/toto
    destination = /media/WD Disk ne fonctionne pas
    Mets la variable destination entre guillemets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    destination = "/media/WD Disk"
    Ca donne koi?

  5. #5
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    ça ne change rien de mettre des quotes autour de la chaîne dans l'affectation de la variable.

  6. #6
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Est ce que tu peux dire à quelle ligne de ton script ca plante?

  7. #7
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par publicStaticVoidMain Voir le message
    Mets la variable destination entre guillemets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    destination = "/media/WD Disk"
    Ca donne koi?
    Et si à la place des guillemets, tu utilises des quotes ' '.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    destination = '/media/WD Disk'
    Par exemple, j'ai exécuté la série d'instructions suivantes, regarde bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    lindows@lindows-laptop:~$ mkdir 'toto titi'
    lindows@lindows-laptop:~$ ls
    Desktop  Examples  Images  Modèles  Musique  Public  public_html  toto titi  Vidéos
    lindows@lindows-laptop:~$ cd toto\ titi/
    lindows@lindows-laptop:~/toto titi$ ls
    lindows@lindows-laptop:~/toto titi$ cd ..
    lindows@lindows-laptop:~$ ls
    Desktop  Examples  Images  Modèles  Musique  Public  public_html  toto titi  Vidéos
    lindows@lindows-laptop:~$ rmdir toto\ titi/
    lindows@lindows-laptop:~$ ls
    Desktop  Examples  Images  Modèles  Musique  Public  public_html  Vidéos

  8. #8
    Membre éprouvé
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2008
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2008
    Messages : 174
    Par défaut
    Bonjour,

    Il faut tout simplement que tu "échappe" ton espace.
    UNIX considère l'espace comme un caractère spécial, il faut donc que tu lui dise : ce n'est pas un caractère spécial.

    ceci ce fait avec le caractère '\'.
    Ta ligne devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    destination = "/media/WD\ Disk"
    Pour voir, ouvre un terminal, va dans le repertoire père de WD Disk ( /media ) tape
    puis appui sur la touche 'tabulation'
    Tu verra, l'auto-complétion va te mettre :

  9. #9
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    @Elverion, PublicStaticVoidMain :
    Je sais que c'est gratifiant de poster une solution, mais faites l'effort de lire la demande de départ en entier !
    krislec connaît les caractères d'échappement :
    Citation Envoyé par lui
    J'ai essayé /media/WD\ Disk .....ne fonctionne pas non plus ???
    Le problème est le passage de l'argument sous forme de variable dans le script. Même avec le caractère d'échappement, l'interpréteur envoir deux paramètres à la commande. ('Mon' et 'Rep' au lieu de 'Mon\ Rep').

    Donc allez, je le remets :
    cd "$MaVariable"

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Un exemple en ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ REPERTOIRE_DESTINATION="/media/WD Disk"
    $ ls "$REPERTOIRE_DESTINATION"/*.sql
    Il me semble qu'il suffit de protéger l'invocation de la variable par des guillemets.

Discussions similaires

  1. gérer les espaces dans les noms de répertoire
    Par Jasmine80 dans le forum Langage
    Réponses: 9
    Dernier message: 28/06/2012, 13h50
  2. problème d'espace dans le nom d'un répertoire
    Par Jasmine80 dans le forum Langage
    Réponses: 6
    Dernier message: 20/01/2009, 17h38
  3. Smbclient et espace dans les noms
    Par jean-jacques varvenne dans le forum Réseau
    Réponses: 4
    Dernier message: 30/11/2005, 18h29
  4. download fichier avec espace dans le nom
    Par cb68 dans le forum Langage
    Réponses: 8
    Dernier message: 23/11/2005, 10h00
  5. Réponses: 4
    Dernier message: 29/10/2005, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo