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

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

이름에 공백이있는 파일

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

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

 고양이 파일 이름 .txt 

이스케이프 문자 나 따옴표를 사용하지 않고 명령 실행

참고 : 파일 이름은이 기사를 제외한 다른 이름 일 수 있습니다. 예를 들어 " file name.txt "를 사용합니다.

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

Bash에 공백이있는 파일 이름

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

방법 1 : 단일 및 이중 견적 사용

  1. Ctrl + Alt 키를 누른 상태에서 T 를 눌러 터미널 을 엽니 다.
  2. 이제 파일이있는 디렉토리로 변경하십시오.

    ( ' cat '명령 다음에 파일을 터미널에 끌어서 놓아도 됩니다. 그러면 파일 경로 / 디렉토리에 자동으로 인용됩니다.)

     cd 데스크탑 

    디렉토리 변경

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

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

    또는

     고양이 "파일 이름 .txt" 

    이름 오류에서 공백을 피하기 위해 따옴표 사용
  4. 작은 따옴표와 큰 따옴표는 동일합니다. 어떤 경우에는 두 가지를 모두 시도하고 어느 것이 효과가 있는지 확인해야합니다.

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

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

    참고 : 위치 이름을 데스크탑 대신 입력하십시오.

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

    공백 오류를 피하기 위해 이스케이프 문자 사용

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

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

따옴표와 이스케이프 문자의 차이점

재미있는 기사