터미널의 폴더에 폴더를 만드는 방법


12

나는라는 이름의 폴더가 music내부의 아티스트 폴더의 모든있다. 이 폴더를 만들 수있는 방법이 있나요 : 1. Albums, 2. EP, 3. Singles, 4. Live명령과 함께 모든 아티스트 폴더?

답변:


12

아티스트 폴더가있는 음악 폴더에서이를 실행하십시오.

for artist in */; do
   for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
      mkdir "$artist/$folder"
   done
done

CLI에서이를 실행하거나 #!/bin/sh첫 번째 행 으로 추가 하고 파일에 저장 하여 쉘 스크립트로 만들 수 있습니다 . 파일을 실행 파일로 만드는 것을 잊지 마십시오.

그것이하는 일에 관해서 : */현재 디렉토리 내의 모든 디렉토리 ( )를 반복 한 다음이 디렉토리 각각에 대해 원하는 하위 폴더 (두 번째 for)를 반복 한 다음 원하는 (상대) 하위 폴더를 만듭니다.


1
오, 아름다워요. 이것은 역사에서 내려갑니다 ;-)
Steve

18

이 중괄호를 착용하고 싶을 수도 있습니다.

이 주장을 위해 우리는 ./music이 존재하지 않는 척합니다.

./music의 기본 디렉토리에서 -p 명령을 사용하여 필요한 곳에 하위 디렉토리를 만들고 중괄호를 사용하여 작은 배열을 만듭니다.

명령 -p은 부모를 위해 짧습니다. 기억하기 쉬운 경우 --parent대신 사용할 수 있습니다

mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}

이걸로 놀고 싶다면 예를 들어

mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}

중첩 된 표현식이 있고 문자열 중간에 중괄호를 삽입 할 수 있으며 서브 디렉토리가 적절하게 따르도록 허용 할 수 있으며 특정 배열에 대한 서브 디렉토리를 지정할 수 있습니다

그런 명령으로 자신 만의 템플릿을 만들고 설명을 할 수있는 곳에 파일을 만들 것을 제안합니다

자세한 내용은이 페이지를 방문하십시오 https://www.linuxjournal.com/content/bash-brace-expansionhttps://www.linux.com/tutorials/all-about-curly-braces-bash/


5
개인적으로 나는이 답변을 더 좋아합니다. 왜냐하면 프로그래머로 생각할 필요가 없기 때문입니다. 나는 중괄호 방법을 거의 사용하지 않지만 훨씬 더 우아합니다.
jawtheshark

6
영업 이익은 각각의 하위 디렉터리 자체 내부에 배치 된 4 하위 디렉터리를 원하는 music정확한 인수가 할 수 있도록 mkdir할 것./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
joH1

1
참고로 -p짧은 형식입니다 --parent.
Amedee Van Gasse
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.