그래서 방금 bash 확장에 대해 배웠습니다...멋지네요 :) 이제 내년을 위한 좋은 계획을 세우고 싶습니다(예를 들어).
폴더를 생성하고 각 폴더에 일부 파일을 한 번에 생성하는 방법을 모르겠습니다... 이것이 가능합니까, 아니면 각 디렉토리로 이동하여 모든 것을 수동으로 반복해야 합니까?
sean@COMMODORE:~$ mkdir plans && cd plans && mkdir 2021-CW{01..52}
sean@COMMODORE:~/plans$ ls
2021-CW01 2021-CW05 2021-CW09 2021-CW13 2021-CW17 2021-CW21 2021-CW25 2021-CW29 2021-CW33 2021-CW37 2021-CW41 2021-CW45 2021-CW49
2021-CW02 2021-CW06 2021-CW10 2021-CW14 2021-CW18 2021-CW22 2021-CW26 2021-CW30 2021-CW34 2021-CW38 2021-CW42 2021-CW46 2021-CW50
2021-CW03 2021-CW07 2021-CW11 2021-CW15 2021-CW19 2021-CW23 2021-CW27 2021-CW31 2021-CW35 2021-CW39 2021-CW43 2021-CW47 2021-CW51
2021-CW04 2021-CW08 2021-CW12 2021-CW16 2021-CW20 2021-CW24 2021-CW28 2021-CW32 2021-CW36 2021-CW40 2021-CW44 2021-CW48 2021-CW52
sean@COMMODORE:~/plans$ cd 2021-CW01
sean@COMMODORE:~/plans/2021-CW01$ touch {work,sport,shopping,music}.txt
sean@COMMODORE:~/plans/2021-CW01$ ls
music.txt shopping.txt sport.txt work.txt
sean@COMMODORE:~/plans/2021-CW01$
답변1
mkdir
첫 번째 명령을 단일 명령으로 단순화하여 -p
상위 디렉터리를 만들 수도 있습니다 .
mkdir -p plans/2021-CW{01..52}
그런 다음 하나만 사용하여 touch
모든 디렉터리에 파일을 만듭니다.
touch plans/2021-CW{01..52}/{work,sport,shopping,music}.txt
$ ls plans/2021-CW*
plans/2021-CW01:
music.txt shopping.txt sport.txt work.txt
plans/2021-CW02:
music.txt shopping.txt sport.txt work.txt
...
plans/2021-CW52:
music.txt shopping.txt sport.txt work.txt
답변2
이 작업을 수행하는 데 사용할 수 있는 스크립트를 작성했습니다.
#!/bin/bash
mkdir -p plans/2021-CW{01..52} && cd plans
for d in */
do
if [ -d "${d}" ] ; then
cd ${d} ; touch {work,sport,shopping,music}.txt ; cd ..
fi
done