중괄호 (중괄호)를 사용하여`mkdir -p`로 폴더 구조 만들기


16

man mkdir상태

   -p, --parents
          no error if existing, make parent directories as needed

이 명령을 실행할 때

mkdir -p work/{F1,F2,F3}/{temp1,temp2}

그것은이 같은 폴더 구조를 만들고 work폴더에 다음 부모 F1, F2, F3하위 폴더 및 temp1temp2세 개의 상위 폴더에서 하위 폴더 F1, F2, F3.

   work
     -F1
       -temp1
       -temp2
     -F2
       -temp1
       -temp2
     -F3
       -temp1
       -temp2

내가 만들려는 이제 문제는 temp1, temp2단지에서 폴더 F1하지에서 F2하고 F3있지만, 나는 내가 원하는 것을 할 명령을 쓸 수있는 방법에 대해 혼란스러워하고있다.


/ - : @Caleb : 죄송합니다, 나는 우리가 모두 같은 시간에 편집 된 인식하지 않았다, 그 개정 병합은 SE가 구현되지 않은 것 같다
스테판 히메네스

@Stephane : 걱정할 필요가 없습니다. 많은 편집 작업을 수행했으며 두 가지 주요 편집 내용이 이와 같이 혼란스러워지는 경우는 거의 없습니다. 기여해 주셔서 감사합니다!
Caleb

답변:


25

아마도 이것이 당신이 찾고있는 것입니까?

 mkdir -p work/{F1/{temp1,temp2},F2,F3}

이봐 요, 최근에 그렇게 간단하게 할 수 있는지 궁금합니다. 감사!
rozcietrzewiacz

2

괄호 확장에 대한 아주 좋은 설명 (예제 포함) Brace Expansion은 bash 매뉴얼의 하위 섹션에서 찾을 수 있습니다 ( man bash, /검색을 시작하고 검색하려면을 누르십시오 Brace Expansion).


감사합니다. 당신의 대답이 저를이 훌륭한 안내서로 인도했습니다! '브레이스 확장'이라는 것을 알아야했기 때문에 Google에서 무엇을해야하는지 알았습니다. linuxcommand.org/lc3_lts0080.php 발췌 : "아마도 가장 이상한 확장은 중괄호 확장이라고 부릅니다.이를 사용하면 중괄호가 포함 된 패턴에서 여러 개의 텍스트 문자열을 만들 수 있습니다. 예는 다음과 같습니다. [me@linuxbox me]$ echo Front-{A,B,C}-Back Front-A-Back Front-B-Back Front-C-Back"
Rock Lee

0
mkdir -p work/F{1..3} work/F1/temp{1,2}

이 먼저 생성 work과의 낮은 수준의 디렉토리를 작성하기 전에 세 개의 하위 디렉토리 work/F1. 읽고 이해하기 쉽습니다.

또는 모든 것을 단일 몬스터 표현으로 결합 해야하는 경우 (읽고 유지하기가 어려울 필요는 없습니다) :

mkdir -p work/F{1/temp{1,2},2,3}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.