tl;dr : Pour citer un caractère spécial, il faut soit l'échapper avec une barre oblique inverse \
ou l'entourer d'un double " "
ou des guillemets simples ' '
. Tab L'achèvement se charge de l'établissement des devis.
Ce que vous demandez s'appelle Citation :
La citation est utilisée pour supprimer la signification spéciale de certains caractères ou mots dans le Shell. ( ) Il existe trois mécanismes de citation : la caractère d'échappement , guillemets simples であり、また guillemets doubles . [citations extraites de <a href="http://manpages.ubuntu.com/manpages/xenial/en/man1/bash.1.html" rel="nofollow noreferrer"><code>man bash</code></a> ]
En citant le caractère d'échappement \
Une barre oblique inverse ( \
) est le caractère d'échappement. Il préserve la valeur littérale du caractère suivant, à l'exception de <newline>
.
Ainsi, 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
's Achèvement programmable (alias Tab La complétion) échappe automatiquement les caractères spéciaux à l'aide du caractère d'échappement \
.
Citation entre guillemets " "
L'insertion de caractères entre guillemets doubles permet de conserver la valeur littérale de tous les caractères compris dans les guillemets, à l'exception des caractères suivants $
, `
, \
et, lorsque l'extension de l'historique est activée, !
.
Ainsi, pour entrer dans un répertoire ou un fichier avec un caractère spécial, échappez au moins la dernière partie ou une grande partie de votre nom de fichier ou de votre chemin d'accès avec des guillemets doubles, 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 “?”
En tant que $
, `
y !
conservent leur signification particulière entre guillemets, Expansion des paramètres , Substitution de commande , Expansion arithmétique y Expansion de l'histoire sont effectuées sur des chaînes de caractères à double quotient.
Citation avec des guillemets simples ' '
L'insertion de caractères entre guillemets simples préserve la valeur littérale de chaque caractère entre guillemets. Un guillemet simple ne peut pas se trouver entre des guillemets simples, même s'il est précédé d'une barre oblique inverse.
Ainsi, pour entrer dans un répertoire ou un fichier avec un caractère spécial, échappez au moins la dernière partie ou une grande partie de votre nom de fichier ou de votre chemin d'accès avec des guillemets doubles, 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 trouverez plus d'informations sur les citations dans man bash
/QUOTING , le wiki.bash-hackers.org et sur tldp.org .