tl; dr : para citar um caractere especial, escape-o com uma barra invertida \
ou coloque-o entre " "
aspas duplas ou simples ' '
. Tab ↹A conclusão cuida da citação adequada.
O que você está pedindo é chamado de Citação :
A citação é usada para remover o significado especial de certos caracteres ou palavras do shell. (…) Existem três mecanismos de citação: o caractere de escape , aspas simples e aspas duplas .
[citações retiradas de man bash
]
Citando com o caractere de escape \
Uma barra invertida não citada ( \
) é o caractere de escape. Ele preserva o valor literal do próximo caractere a seguir, com exceção de <newline>
.
Portanto, para inserir um diretório ou arquivo com um caractere especial, escape deste último com \
, por exemplo:
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
A conclusão programável de (ou seja, Tab ↹conclusão) escapa automaticamente caracteres especiais com o caractere de escape \
.
Citando aspas duplas " "
Anexando caracteres entre aspas duplas preserva o valor literal de todos os caracteres entre as aspas, com exceção de $
, `
, \
, e, quando a expansão história está habilitado, !
.
Portanto, para inserir um diretório ou arquivo com um caractere especial, escape pelo menos uma parte posterior ou maior do nome do arquivo ou caminho com aspas duplas, por exemplo:
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 “?”
Como $
, `
e !
manter o seu significado especial dentro de aspas duplas, Parâmetro de expansão , comando de substituição , expansão aritmética e história da expansão são realizadas em strings delimitadas por aspas.
Citando aspas simples ' '
Incluir caracteres entre aspas simples preserva o valor literal de cada caractere dentro das aspas. Uma aspas simples pode não ocorrer entre aspas simples, mesmo quando precedida por uma barra invertida.
Portanto, para inserir um diretório ou arquivo com um caractere especial, escape pelo menos uma parte posterior ou maior do nome do arquivo ou caminho com aspas duplas, por exemplo:
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 “\”
Você pode encontrar mais informações sobre cotação em man bash
/ QUOTING , no wiki.bash-hackers.org e no tldp.org .