Espeace dans nom de fichier
Fermé
mystere689
-
14 mai 2009 à 21:47
mystere689_tahiti Messages postés 6 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 19 mai 2009 - 15 mai 2009 à 02:00
mystere689_tahiti Messages postés 6 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 19 mai 2009 - 15 mai 2009 à 02:00
A voir également:
- Espeace dans nom de fichier
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier iso - Guide
5 réponses
Franzux
Messages postés
8907
Date d'inscription
mercredi 5 décembre 2007
Statut
Contributeur
Dernière intervention
27 octobre 2015
1 145
14 mai 2009 à 21:54
14 mai 2009 à 21:54
Il suffit d'échapper le caractère qui pose problème (espace) avec un anti-slash.
Donc au lieu de "mes documents", tu dois écrire "mes\ documents", tout simplement ;)
Cordialement.
Donc au lieu de "mes documents", tu dois écrire "mes\ documents", tout simplement ;)
Cordialement.
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
14 mai 2009 à 23:35
14 mai 2009 à 23:35
Salut,
Tu peux vérifier le contenu de la variable $TOTO en faisant un echo de celle-ci.
En fait, avec un caractère d'échappement cela ne suffit pas.
Voici ce qu'il faut faire :
1 - définiti $TOTO
TOTO="Path\to\Mes Documents"
echo $TOTO (pour vérifier)
ensuite lorsque tu fais le mkdir -p il faut encadrer $TOTO par ""
mkdir -p "$TOTO"
Voici en gros ce que ça donne :
jonas@LENOVO ~/home$ TOTO="rep5/Test dossier
jonas@LENOVO ~/home$ echo $TOTO
rep5/Test dossier
jonas@LENOVO ~/home$ mkdir -p "$TOTO"
jonas@LENOVO ~/home$ ls rep5
Test dossier
jonas@LENOVO ~/home$
Bon courage à toi.
Jonas.
Tu peux vérifier le contenu de la variable $TOTO en faisant un echo de celle-ci.
En fait, avec un caractère d'échappement cela ne suffit pas.
Voici ce qu'il faut faire :
1 - définiti $TOTO
TOTO="Path\to\Mes Documents"
echo $TOTO (pour vérifier)
ensuite lorsque tu fais le mkdir -p il faut encadrer $TOTO par ""
mkdir -p "$TOTO"
Voici en gros ce que ça donne :
jonas@LENOVO ~/home$ TOTO="rep5/Test dossier
jonas@LENOVO ~/home$ echo $TOTO
rep5/Test dossier
jonas@LENOVO ~/home$ mkdir -p "$TOTO"
jonas@LENOVO ~/home$ ls rep5
Test dossier
jonas@LENOVO ~/home$
Bon courage à toi.
Jonas.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
14 mai 2009 à 23:42
14 mai 2009 à 23:42
Salut,
Il suffit de double-quoter la variable :
Il suffit de double-quoter la variable :
[tmpfs]$ ls Mes Documents/ [tmpfs]$ var=$(ls) [tmpfs]$ echo $var Mes Documents/ [tmpfs]$ rm -rf $var [tmpfs]$ ls Mes Documents/ [tmpfs]$ rm -rf "$var" [tmpfs]$ ls [tmpfs]$;-))
mystere689_tahiti
Messages postés
6
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
19 mai 2009
15 mai 2009 à 01:49
15 mai 2009 à 01:49
Merci à tous de vos réponses. effectivement avec le post de jipicy cela fonctionne en ligne de commande, mais j'ai du mal à l'intégrer dans mon batch. en fait le probleme est le suivant; crée un double de l'arboresence de /samba/probile/<utilisateur> mais en ne prennant que le dossier Bureau et "Mes documents" (le fameux dossier qui m'embete).
voila la partie du scripte qui devait réalisé cela :
#!/bin/sh
#LISTE=$(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \) -type d | sed -e "s/Mes\ documents/\"Mes_documents\"/")
#echo $LISTE
for file in $(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \) -type d | sed -e "s/Mes\ documents/Mes_documents/") #$(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \)
do
FICHIER_SOURCE=$file
FICHIER_DEST=$(echo "\"$file\"" | sed -e "s/samba/samba2/;s/Mes_documents/Mes documents/")
echo "$FICHIER_DEST"
mkdir -p $FICHIER_DEST
#cp -rf -reply=yes $FICHIER_SOURCE $FICHIER_DEST/.. >>/tmp/rsync_script_tmpfile
done
cela me donne en sortie console (grace à "echo") :
"/tmp/mirroir/2009-05-12/files/samba2/profiles/teinab/Bureau"
"/tmp/mirroir/2009-05-12/files/samba2/profiles/reat/Mes documents"
"/tmp/mirroir/2009-05-12/files/samba2/profiles/jaryt/Mes documents"
"/tmp/mirroir/2009-05-12/files/samba2/profiles/maretat/Bureau"
mais aucun répertoire de se crée. Comment faire ????
voila la partie du scripte qui devait réalisé cela :
#!/bin/sh
#LISTE=$(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \) -type d | sed -e "s/Mes\ documents/\"Mes_documents\"/")
#echo $LISTE
for file in $(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \) -type d | sed -e "s/Mes\ documents/Mes_documents/") #$(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \)
do
FICHIER_SOURCE=$file
FICHIER_DEST=$(echo "\"$file\"" | sed -e "s/samba/samba2/;s/Mes_documents/Mes documents/")
echo "$FICHIER_DEST"
mkdir -p $FICHIER_DEST
#cp -rf -reply=yes $FICHIER_SOURCE $FICHIER_DEST/.. >>/tmp/rsync_script_tmpfile
done
cela me donne en sortie console (grace à "echo") :
"/tmp/mirroir/2009-05-12/files/samba2/profiles/teinab/Bureau"
"/tmp/mirroir/2009-05-12/files/samba2/profiles/reat/Mes documents"
"/tmp/mirroir/2009-05-12/files/samba2/profiles/jaryt/Mes documents"
"/tmp/mirroir/2009-05-12/files/samba2/profiles/maretat/Bureau"
mais aucun répertoire de se crée. Comment faire ????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mystere689_tahiti
Messages postés
6
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
19 mai 2009
15 mai 2009 à 02:00
15 mai 2009 à 02:00
finalement ceci à l'air de répondre à mon problème :
#!/bin/sh
# on enleve l'epace car c'est le séparateur pour for dans une liste
for file in $(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \) -type d | sed -e "s/Mes\ documents/Mes_documents/")
do
FICHIER_SOURCE=$file
# on remet l'espace
FICHIER_DEST=$(echo "$file" | sed -e "s/samba/samba2/;s/Mes_documents/Mes documents/")
echo $FICHIER_DEST
mkdir -p "$FICHIER_DEST" # merci jypicy
#cp -rf -reply=yes $FICHIER_SOURCE $FICHIER_DEST/.. >>/tmp/rsync_script_tmpfile # pas testé encore
done
#!/bin/sh
# on enleve l'epace car c'est le séparateur pour for dans une liste
for file in $(find "/tmp/mirroir/2009-05-12/files/samba/profiles" \( -iname Bureau -or -iname 'Mes Documents' \) -type d | sed -e "s/Mes\ documents/Mes_documents/")
do
FICHIER_SOURCE=$file
# on remet l'espace
FICHIER_DEST=$(echo "$file" | sed -e "s/samba/samba2/;s/Mes_documents/Mes documents/")
echo $FICHIER_DEST
mkdir -p "$FICHIER_DEST" # merci jypicy
#cp -rf -reply=yes $FICHIER_SOURCE $FICHIER_DEST/.. >>/tmp/rsync_script_tmpfile # pas testé encore
done