tl; dr : Mengutip karakter khusus baik menghindarinya dengan backslash \
atau melampirkannya dalam " "
tanda kutip ganda atau tunggal ' '
. Tab ↹Penyelesaian mengurus kutipan yang tepat.
Apa yang Anda minta disebut Mengutip :
Mengutip digunakan untuk menghapus makna khusus karakter atau kata-kata tertentu ke shell. (...) Ada tiga mekanisme penawaran: karakter melarikan diri , kutipan tunggal , dan kutipan ganda .
[kutipan diambil dari man bash
]
Mengutip dengan karakter pelarian \
Garis miring terbalik ( \
) adalah karakter pelarian. Ini mempertahankan nilai literal dari karakter berikutnya yang mengikuti, dengan pengecualian <newline>
.
Jadi untuk memasukkan direktori atau file dengan karakter khusus, lepas dari yang terakhir dengan \
, misalnya:
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 Programmable Penyelesaian (alias Tab ↹Penyelesaian) secara otomatis lolos karakter khusus dengan karakter escape \
.
Mengutip dengan tanda kutip ganda " "
Melampirkan karakter dalam tanda kutip ganda mempertahankan nilai literal dari semua karakter dalam tanda kutip, dengan pengecualian $
, `
, \
, dan, ketika ekspansi sejarah diaktifkan, !
.
Jadi untuk memasukkan direktori atau file dengan karakter khusus, lepas setidaknya yang terakhir atau sebagian besar nama file atau jalur Anda dengan tanda kutip ganda, misalnya:
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 “?”
Sebagai $
, `
dan !
menyimpan makna khusus mereka di dalam tanda kutip ganda, Ekspansi Parameter , Substitusi Perintah , Ekspansi Aritmatika , dan Ekspansi Sejarah dilakukan pada string yang dikutip ganda.
Mengutip dengan tanda kutip tunggal ' '
Menutup karakter dalam tanda kutip tunggal mempertahankan nilai literal setiap karakter dalam tanda kutip. Kutipan tunggal mungkin tidak terjadi di antara tanda kutip tunggal, bahkan ketika didahului oleh garis miring terbalik.
Jadi untuk memasukkan direktori atau file dengan karakter khusus, lepas setidaknya yang terakhir atau sebagian besar nama file atau jalur Anda dengan tanda kutip ganda, misalnya:
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 “\”
Anda dapat menemukan lebih banyak tentang Mengutip di man bash
/ QUOTING , di wiki.bash-hackers.org dan di tldp.org .