tl; dr : 특수 문자를 인용하려면 백 슬래시로 이스케이프 처리 \
하거나 큰 " "
따옴표 나 작은 따옴표로 묶으십시오 ' '
. Tab ↹완성은 적절한 인용을 처리합니다.
당신이 요구하는 것을 Quoting 이라고합니다 :
인용은 특정 문자 나 단어가 쉘에 특수한 의미를 제거하는 데 사용됩니다. (…) 세 가지 인용 메커니즘이 있습니다 : 이스케이프 문자 , 작은 따옴표 및 큰 따옴표 .
[인용문 man bash
]
이스케이프 문자로 인용 \
따옴표가없는 백 슬래시 ( \
)는 이스케이프 문자입니다. 다음을 제외한 다음 문자의 리터럴 값을 유지합니다 <newline>
.
따라서 특수 문자가있는 디렉토리 또는 파일을 입력하려면 다음과 같이 후자를 이스케이프하십시오 \
.
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
의 프로그램 완료 (일명 Tab ↹완료)가 자동으로 이스케이프 문자와 특수 문자를 이스케이프합니다 \
.
큰 따옴표로 인용 " "
큰 따옴표 문자를 묶는 것은 제외하고, 따옴표 내의 모든 문자의 리터럴 값을 보존 $
, `
, \
,와, 역사 확장을 사용하는 경우, !
.
따라서 특수 문자가 포함 된 디렉토리 또는 파일을 입력하려면 최소한 파일 이름 또는 경로의 큰 부분 또는 큰 따옴표를 큰 따옴표로 이스케이프하십시오.
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 “?”
로 $
, `
그리고 !
따옴표, 내부에 자신의 특별한 의미를 유지하는 매개 변수 확장 , 명령 치환 , 연산 확장 과 역사 확장 따옴표 문자열에서 수행됩니다.
작은 따옴표로 인용 ' '
작은 따옴표로 문자를 묶으면 따옴표 안에 각 문자의 리터럴 값이 유지됩니다. 백 슬래시가 앞에 있어도 작은 따옴표 사이에는 작은 따옴표가 없을 수 있습니다.
따라서 특수 문자가 포함 된 디렉토리 또는 파일을 입력하려면 최소한 파일 이름 또는 경로의 큰 부분 또는 큰 따옴표를 큰 따옴표로 이스케이프하십시오.
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 “\”
당신의 인용에 대한 자세한 찾을 수 있습니다 man bash
/ 인용 에 wiki.bash-hackers.org 과에 tldp.org .