Menu

Caractère espace sous linux [Résolu/Fermé]

0ac31m - 15 mai 2008 à 10:38 - Dernière réponse : lami20j 21513 Messages postés jeudi 4 novembre 2004Date d'inscriptionModérateurStatut 8 octobre 2012 Dernière intervention
- 15 mai 2008 à 12:00
Bonjour,

La question est toute simple, mais je n'ai pas trouvé la réponse. Comment intégrer un nom avec des espaces avec une ligne de commande ? Si je mets un bête espace, la commande foire, est-ce qu'il faut utiliser %20 comme sur la page web ?

Exemple : je veux écrire "Mot1 Mot2" dans une ligne de commande. Est-ce que ça devient : Mot1%20Mot2 ?

Merci d'avance !
Afficher la suite 

6 réponses

KuKrApOk59 442 Messages postés jeudi 27 décembre 2007Date d'inscription 13 septembre 2013 Dernière intervention - 15 mai 2008 à 10:42
+14
Utile
Exemple pour un repertoire qui s'apellerait Mon repertoire ?
Pour l'ouvrir :
$ cd Mon\ repertoire
devrait faire l'affaire ...
Cette réponse vous a-t-elle aidé ?  
Grunt 2784 Messages postés jeudi 17 janvier 2008Date d'inscriptionContributeurStatut 14 novembre 2010 Dernière intervention - 15 mai 2008 à 11:09
+4
Utile
Je confirme les dires de KuKrApOk59: il faut "escaper" l'espace avec un backslash (le caractère '\')
En effet, l'espace fait partie des caractères spéciaux d'une ligne de commande, puisqu'il sépare les paramètres.
Plus généralement, il faut précéder chaque caractère posant problème d'un backslash pour indiquer qu'il faut le prendre comme tel sans l'interpréter dans la commande.
Et le backslash s'escape aussi: si ton dossier s'appelle "foo\bar", tu entres dedans en tapant "cd foo\\bar" pour indiquer que le backslash n'escape rien.

Les guillemets marchent aussi en effet, mais c'est une syntaxe plus.. "Windows". Le backslash est également utilisé en PHP pour introduire un caractère spécial dans une chaîne, c'est donc une bonne habitude à prendre.
lami20j 21513 Messages postés jeudi 4 novembre 2004Date d'inscriptionModérateurStatut 8 octobre 2012 Dernière intervention - 15 mai 2008 à 11:19
+1
Utile
Salut,

Les guillemets marchent aussi en effet, mais c'est une syntaxe plus.. "Windows".
Plutôt DOS, Windows n'a pas de syntaxe mais des clic/clac ;-DD

Alors il faut utilser les apostrophes ;-), c'est plus propre et ça evite de taper un backslash avant chaque espace (pour les paresseux, j'en suis un ;-))
Si jamais dans le nom il y un apostrophe alors soit tu utilises les guillemets (on s'en fiche d'où ça viens ;-), soit tu utilises que pour l'apostrophe \'

Exemple :

avec backslash
root@debian:~# mkdir Mon\ repertoire\ de\ musique
root@debian:~# ls -ld Mon\ repertoire\ de\ musique/
drwxr-xr-x 2 root lami20j 4096 2008-05-15 11:17 Mon repertoire de musique/
root@debian:~# rmdir  Mon\ repertoire\ de\ musique/
avec apostrophe
root@debian:~# mkdir 'Mon repertoire de musique'
root@debian:~# ls -ld 'Mon repertoire de musique'
drwxr-xr-x 2 root lami20j 4096 2008-05-15 11:18 Mon repertoire de musique
root@debian:~# rmdir 'Mon repertoire de musique'
root@debian:~# ls -ld 'Mon repertoire de musique'
ls: Mon repertoire de musique: Aucun fichier ou répertoire de ce type
root@debian:~#


JR des cavernes 154 Messages postés mardi 6 mai 2008Date d'inscription 19 mai 2009 Dernière intervention - 15 mai 2008 à 10:46
0
Utile
Il me semble que cd "Mon repertoire" marche aussi...
Grunt 2784 Messages postés jeudi 17 janvier 2008Date d'inscriptionContributeurStatut 14 novembre 2010 Dernière intervention - 15 mai 2008 à 11:54
0
Utile
1
remi@serveur:~/demo$ mkdir \ \ essai
remi@serveur:~/demo$ cd " essai"/
remi@serveur:~/demo/ essai$ mkdir \"autre\ essai\"
remi@serveur:~/demo/ essai$ ls
"autre essai"
remi@serveur:~/demo/ essai$ cd \"autre\ essai\"/
remi@serveur:~/demo/ essai/"autre essai"$


On peut toujours s'amuser :+p

" ou \ Ce qui compte c'est que ça marche. les " ou ' ont l'avantage de ne devoir être écrit que deux fois quel que soit le nombre de caractères spéciaux. Alors qu'il faut un backslash par caractère spécial.
Par contre la "tab completion" propose par défaut des backslash (sous MS-DOS elle propose des ")

A noter que le MS-DOS ne prend pas les backslash, seulement les "
lami20j 21513 Messages postés jeudi 4 novembre 2004Date d'inscriptionModérateurStatut 8 octobre 2012 Dernière intervention - 15 mai 2008 à 12:00
On peut toujours s'amuser :+p
Bien sûr ;-)

Par contre la "tab completion" propose par défaut des backslash
Oui et non.

Pour Mon repertoire de musique
Si je fait ls -ld M et ensuite TAB completion j'obtiens comme tu l'as dit
ls -ld Mon\ repertoire\ de\ musique/
le dernier slash ne fait pas partie de nom

En revanche si je fait
ls -ld 'M et ensuite TAB completion j'obtiens
ls -ld 'Mon repertoire de musique'/
--
106485010510997108