Caractère espace sous linux

Résolu
0ac31m -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
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 !
A voir également:

5 réponses

KuKrApOk59 Messages postés 444 Statut Membre 84
 
Exemple pour un repertoire qui s'apellerait Mon repertoire ?
Pour l'ouvrir :
$ cd Mon\ repertoire
devrait faire l'affaire ...
18
Grunt Messages postés 2845 Statut Contributeur 301
 
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.
7
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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:~#


3
JR des cavernes Messages postés 166 Statut Membre 84
 
Il me semble que cd "Mon repertoire" marche aussi...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Grunt Messages postés 2845 Statut Contributeur 301
 
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 "
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
0