bash에 공백이 포함 된 이름을 가진 디렉토리로 cd하는 방법은 무엇입니까? 나는 시도했다 cd “~/Library/Application Support/” -bash: cd:

나는 시도했다 cd "~/Library/Application Support/"
-bash: cd: ~/Library/Application Support/: No such file or directory

또한 cd ~/Library/Application Support/
-bash: cd: ~/Library/Application Support/: No such file or directory



답변

당신은 사용할 수 있습니다 Tab당신이 유형은 예이 다음 폴더의 나머지 부분 “에 기입”것이다 (처음 몇 글자를 누른 후 키를 cd ~/LTab채우고 cd ~/Library/다음을 입력 ApTab하고 당신을 위해 나머지를 입력합니다.

단어 사이에 공백이 있고 위의 방법을 사용하지 않으려면 \공백 앞에 (백 슬래시)를 넣으십시오 (예 🙂 cd ~/Library/Application\ Support.


답변

여기서 핵심 문제는 쉘 ( bash )이 인용하는 방식과 이것이 틸드 확장에 영향을 미치고 “단어”(프로그램 실행에 대한 인수)로 분할하는 방법에 있습니다.

bash 는 인용 된 틸드를 인용하지 않은 경우에만 처리합니다. 또한 다음 슬래시도 인용해서는 안됩니다.

동시에 bash 는 인용되지 않은 공백을 기준으로 명령 행을 “단어”로 구문 분석합니다. 이 cd명령에는 일반적으로 정확히 하나의 인수 (대상 디렉토리)가 필요합니다. 같은 명령 줄 cd foo bar수단을 실행하는 cd두 개의 인수 : foobar. 단일 foo bar인수 만 보내 려면 공백을 인용해야합니다
(예 : cd foo\ bar아래 인용 예제 참조).

특정 상황에서는 디렉토리 이름에 공백을 인용하면서 물결표와 다음 슬래시를 인용 부호로 남겨 두어야합니다. 당신의 cd "~/Library/Application Support/"당신의 동안 재판, (물결표와 슬래시) 너무 많이 인용 끝 cd ~/Library/Application Support/재판이 (가 디렉토리 이름에 공백을 인용하는 것을 생략) 너무 적게 인용.

가장 일반적인 해결책은 단일 문자 이스케이프를 사용하여 공백 만 인용하는 것입니다.

    cd ~/Library/Application\ Support

공백이나 공백 및 해당 인수의 일부 다른 비트 주위에 작은 따옴표 나 큰 따옴표를 사용할 수도 있습니다 ( ~/!는 제외).

    cd ~/Library/Application' 'Support
    cd ~/Library/Application" "Support
    cd ~/Library/App'lication 'Support
    cd ~/Library/Application" Supp"ort
    cd ~/'Library/Application 'Support
    cd ~/"Library/Application "Support

이러한 종류의 따옴표는 다른 의미를 갖지만이 예에서는 동일합니다. 작은 따옴표는 리터럴 문자열을 보호하고 큰 따옴표는 인용 된 영역에서 다양한 확장 및 대체를 허용합니다.

종종 쉘이 작업을 수행하도록 할 수 있습니다.

  • 글 로빙 (와일드 카드) :

    cd ~/L*/Ap*

    shopt -s nocaseglob대소 문자를 구분하지 않는 데 사용할 수 있습니다 .

    cd ~/l*/ap*
  • 완성:

    Tab입력 한 후를 누르면 cd ~/L확장 할 수 cd ~/Library/있습니다. 입력 한 후 (이제 ) 다시
    누르면 셸이 자동으로 이스케이프 백 슬래시를 삽입합니다.TabApcd ~/Library/Apcd ~/Library/Application\ Support/

    bind 'set completion-ignore-case on'대소 문자를 구분하지 않으려면 다음을 사용하십시오 .

    cd ~/l Tabcd ~/Library/; ap Tabcd ~/Library/Application\ Support/


답변

경로를 큰 따옴표로 묶으면 물결표 확장이 중지됩니다. 이를 위해 몇 가지 방법이 있습니다.

cd ~/"My Code"
cd ~/'My Code'

물결표는 여기에 인용되어 있지 않으므로 물결표 확장이 계속 실행됩니다.

cd "$HOME/My Code"

큰 따옴표로 묶인 문자열 내에서 환경 변수를 확장 할 수 있습니다. 이것이 기본적으로 물결표 확장이 수행하는 작업입니다.

cd ~/My\ Code

백 슬래시를 사용하여 공백과 같은 특수 문자를 이스케이프 할 수도 있습니다.


답변

또는 폴더를 터미널 창으로 끌 수도 있습니다. 전체 파일 / 폴더 경로는 끌어서 자동 붙여 넣기됩니다.


답변

Application Support” 의 공간을 벗어나야합니다.

시험 $ cd ~/Library/Application\ Support/


답변

일반적인 방법으로 문제가 해결되지 않으면로 공백을 대체 해보십시오 %20.

이것은 SSH 및와 같은 다른 도메인 스타일 명령을 다룰 때 나를 위해 일했습니다 auto_smb.


답변

파일 또는 폴더 이름에 1) file name.extension이 포함 된 경우 간격이있는 폴더 / 파일에 대해이 작업을 시도 할 수 있습니다. 명령은 cd ~ / file \ name.extension / (또는) cd ~ / “file name.extension”/이어야합니다.