Bash 스크립트를 사용하여 100 개의 하위 디렉토리를 만드는 방법은 무엇입니까?


14

Bash 스크립트를 사용하여 특정 디렉토리에 100 개의 다른 하위 디렉토리를 만들려고합니다.

기본 for루프 (즉, for f in $FILES;do mkdir f done)로 시작하지만 작동하지 않습니다.

내가하고 싶은 일을 분명히하기 위해 : 현재 디렉토리에서 100 개의 다른 하위 디렉토리를 얻으려고합니다 (여기서는 사용합니다 home='pwd'). 예를 들어 directory에 /home/paul/main_directory/있습니다.

그리고 여기에 다음과 같이 1에서 100 사이의 색인으로 100 개의 디렉토리를 작성하고 싶습니다.

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

답변:


19

제안 된 for루프를 사용하여 질문에 대답하려면 steeldriver가 언급 한 중괄호 식도 작동합니다.

for i in {1..100}; do mkdir subdirectory_$i; done

업데이트 된 질문에 대답하려면 :

둘 다-스틸 드라이버의 대답과 나의 대답은 모두 하나의 라이너입니다.

이것을 Bash 스크립트에서 사용하려면 다음과 같이 작성하십시오.

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

죄송합니다. 답변을 수정하고 싶지 않습니다. 댓글을 남기고 싶습니다 ... 아야 ...
Pavol Namer

매우 빠른 답변을 주셔서 대단히 감사합니다. 여러 번 감사합니다.이 시간은 안전합니다. :)
Pavol Namer

1
BASH가없고 / bin / sh 만있는 경우를 seq대신 할 수 있습니다 . for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn

같은 작업을 3 번 시도 할 때 '{1..3}'디렉토리를 만듭니다. 무엇이 잘못되었을 지에 대한 단서가 있습니까?
soufrk

40

가장 쉬운 방법은 아마도 괄호 확장 을 사용하는 것입니다

mkdir subdirectory_{1..100}

8

스틸 드라이버가 제공하는 진정으로 인상적인 답변에 약간의 것을 추가하려면 :

0으로 채워서 "적절하게"정렬 된 디렉토리를 만들 수 있습니다.

mkdir subdirectory_{001..100}

(이 답변이 마음에 드시면 steeldriver 's answer를 찬성하십시오. 아직 댓글을 달 수 없거나 그렇게했을 것입니다.)


'subdirectory_ {001..100}'이라는 서브 디렉토리를 작성합니다. 무엇이 잘못되었는지에 대한 단서.
soufrk

몰라요. 그것은 나를 위해 잘 작동합니다. bash를 사용하고 있습니까?
MDeBusk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.