중괄호 확장을 사용하여 디렉터리 만들기

중괄호 확장을 사용하여 디렉터리 만들기

mkdir Public/1 2 3 ----- 이 줄은 Public 폴더에 폴더 1을 생성하고 my pwd에 2 및 3이라는 폴더를 생성합니다.

mkdir Public/{1..3} ---- 이 줄은 예상대로 Public에 폴더 1,2,3만 생성합니다.

무슨 일인지 설명해 줄 수 있는 사람이 있나요?

답변1

첫 번째 명령은 다음과 같습니다.

mkdir Public/1 2 3

BASH는 이를 Public 디렉토리에 mkdir Public/1내부라는 이름의 디렉토리를 생성하는 것으로 해석합니다. 1다른 것들은 앞에 추가된 디렉토리가 없으므로 BASH는 이를 현재 작업 디렉토리에 생성하는 것으로 해석합니다 2.3

두 번째 명령은 다음과 같습니다.

mkdir Public/{1..3}

보시다시피 BASH는 첫 번째 명령에서처럼 현재 작업 디렉터리를 사용하는 대신 Public/{1..3}중괄호 확장을 사용하여 디렉터리를 만들고 디렉터리 내부에 사용하는 것으로 1해석 합니다 2.3Public

rmdir와 함께 또는 대신 동일한 콘텐츠를 사용하는 경우 에도 touch동일한 일이 발생합니다 mkdir.

답변2

, 및 의 mkdir Public/1 2 3세 가지 매개변수가 있습니다 . 이 명령은 다음과 같습니다.Public/123

mkdir Public/1
mkdir 2
mkdir 3

mkdir Public/{1..3}실행하기 전에 쉘 에서 {1..3}확장하십시오 mkdir. 하지만 껍질은 팽창하지 않습니다.{1..3} 홀로. 이것은{1..3}더 큰 "단어". 다음을 Public/{1..3}통해 Public/1 Public/2 Public/3볼 수 있습니다 echo.

echo Public/{1..3}

쉘에서 실행되는 실제 명령은 mkdir Public/1 Public/2 Public/3다음과 같습니다.

mkdir Public/1
mkdir Public/2
mkdir Public/3

관련 정보