Bash에서 공백이있는 전달 파일 이름을 처리하는 방법

Linux에는 시스템에 대한 명령을 실행하기위한 기본 셸 Bash (일명 Bourne 셸)가 있습니다. 대부분의 프로그래머는 bash가 제공하는 유연성과 강력한 명령 줄 인터프리터 때문에 cmd보다 bash를 선호합니다. 그러나 대부분의 사용자는 bash에서 공백이있는 파일 이름 전달을 처리하는 동안 여전히 문제가 있습니다. bash에서는 공백이 파일 이름과 동일하게 간주되지 않기 때문입니다.

공백이있는 파일 이름이 Bash에서 인식되지 않는 이유는 무엇입니까?

Bash에서 이스케이프 문자 (\) 또는 따옴표 없이 여러 단어를 입력하면 모든 단어가 인수로 간주됩니다. 이는 ' cd '로 디렉토리를 변경 하거나 ' cat '명령으로 파일에 액세스하려는 모든 작업에 적용됩니다 . 이것을 사용한 후에 작성한 모든 것은 인수로 간주됩니다. 예를 들면 :

고양이 파일 name.txt

참고 : 파일 이름은 무엇이든 될 수 있지만이 문서에서는 " file name.txt "를 예로 사용합니다.

여기서 ' cat '명령은 파일이름 을 단일 인수가 아닌 두 인수로 간주 합니다 . 그러나 이스케이프 문자 나 따옴표를 사용하는 경우 bash 쉘은이를 " file name.txt " 가되는 단일 인수로 간주합니다 .

Bash에 공백이있는 파일 이름

이름의 공백에 사용할 수있는 방법은 거의 없습니다. 가장 좋은 방법은 나중에 파일 이름에 공백을 사용하지 않는 것입니다. 간단한 방법은 액세스하려는 파일의 이름을 바꾸고 공백을 제거하는 것입니다. 일부 다른 방법은 공백이있는 파일 이름에 작은 따옴표 또는 큰 따옴표를 사용하거나 공백 바로 앞에 이스케이프 (\) 기호를 사용합니다. 어떻게 작동하는지 보여주기 위해 응용 예제와 함께 방법을 제공 할 것입니다.

방법 1 : 작은 따옴표 및 큰 따옴표 사용

  1. 상태에서 Ctrl + Alt의 키를 눌러 T를 개방에 터미널 .
  2. 이제 파일이있는 디렉토리로 변경하십시오.

    (당신은 또한 할 수있는 드래그드롭 명령 '후 터미널에서 파일을 고양이 자동으로 파일 경로 / 디렉토리에 견적을 넣어 것입니다')

    cd 데스크탑

    참고 : 데스크톱은 액세스하려는 위치로 변경할 수 있습니다.

  3. 이름에 공백이있는 텍스트 파일을 읽으려면 다음 명령을 입력하십시오.
    고양이 '파일명 .txt'

    또는

    cat "file name.txt"
  4. 작은 따옴표와 큰 따옴표는 같은 결과를 가져옵니다. 어떤 경우에는 두 가지를 모두 시도하고 어떤 것이 작동하는지 확인해야합니다.

방법 2 : 백래시 이스케이프 문자 사용

  1. 상태에서 Ctrl + Alt의 키를 눌러 T를 개방에 터미널 .
  2. 다음 명령을 사용하여 파일이있는 디렉토리로 변경합니다.
    cd 데스크탑

    참고 : Desktop 대신 위치 이름을 입력하십시오.

  3. 이제 명령을 입력 하고 이름에 공백이있는 곳이면 어디에서나 이스케이프 문자를 사용 하십시오.
    고양이 파일 \ name.txt

보너스 : 인용문 사용 및 탈출

명령에서 디렉토리를 사용할 때 전체 경로에 따옴표를 사용하면 결과가 발생할 수 있습니다. ' mv '또는 ' cp ' 와 같은 일부 명령 은 인용문이 전체적으로 사용되는 경우 경로를 파일 소스 로 간주하기 때문 입니다. ' cp ' 와 같은 명령이 제대로 작동 할 수 있도록 원본대상 모두에 대해 개별적으로 인용문을 제공해야합니다 . 경로에 이스케이프 문자를 사용하는 것이 훨씬 더 복잡하고 사용자가 실수를 할 수 있음을 보여주는 아래 예제를 확인할 수도 있습니다.