tl; dr : pour citer un caractère spécial, écrivez-le avec une barre oblique inverse \
ou mettez-le entre " "
guillemets simples ou doubles ' '
. Tab ↹L'achèvement prend soin de la citation correcte.
Ce que vous demandez s'appelle citer :
La citation est utilisée pour supprimer la signification particulière de certains caractères ou mots du shell. (…) Il existe trois mécanismes de guillemets: le caractère d'échappement , les guillemets simples et les guillemets doubles .
[citations tirées de man bash
]
Citer avec le personnage d'échappement \
Une barre oblique inverse ( \
) est le caractère d'échappement. Il conserve la valeur littérale du caractère suivant, à l'exception de <newline>
.
Donc, pour entrer dans un répertoire ou un fichier avec un caractère spécial, échappez ce dernier avec \
, par exemple:
cd space\ dir # change into directory called “space dir”
cat space\ file # print the content of file “space file”
echo content > \\ # print “content” into file “\”
cat \( # print the content of file “(”
ls -l \? # list file “?”
bash
de » achèvement programmable (aka Tab ↹achèvement) échappe automatiquement des caractères spéciaux avec le caractère d'échappement \
.
Citations avec guillemets " "
Caractères Enfermer guillemets préserve la valeur littérale de tous les caractères dans les citations, à l'exception de $
, `
, \
et, lorsque l' expansion de l' histoire est activée, !
.
Donc, pour entrer dans un répertoire ou un fichier avec un caractère spécial, échappez au moins ce dernier ou une partie plus importante de votre nom de fichier ou de votre chemin avec des guillemets, par exemple:
cd space" "dir # change into directory called “space dir”
cd spac"e di"r # equally
cd "space dir" # equally
cat "space file" # print the content of file “space file”
cat "(" # print the content of file “(”
ls -l "?" # list file “?”
Comme $
, `
et !
gardent leur signification spéciale à l' intérieur des guillemets doubles, extension des paramètres , commande Remplacement , Arithmétique et extension Histoire sont effectuées sur les chaînes entre guillemets doubles.
Citer avec des guillemets simples ' '
Le fait de placer des caractères entre guillemets simples préserve la valeur littérale de chaque caractère entre guillemets. Un seul guillemet ne peut pas apparaître entre guillemets, même s'il est précédé d'une barre oblique inverse.
Donc, pour entrer dans un répertoire ou un fichier avec un caractère spécial, échappez au moins ce dernier ou une partie plus importante de votre nom de fichier ou de votre chemin avec des guillemets, par exemple:
cd space' 'dir # change into directory called “space dir”
cd spac'e di'r # equal
cd 'space dir' # equal
cat 'space file' # print the content of file “space file”
cat '(' # print the content of file “(”
ls -l '?' # list file “?”
echo content > '\' # print “content” into file “\”
Vous pouvez en savoir plus sur man bash
Quotation dans / QUOTING , sur wiki.bash-hackers.org et sur tldp.org .