폴더 구성

폴더 구성

여러 폴더("Amazon", "Niger", "Rhine", ...)가 있습니다. 각 폴더에는 여러 하위 폴더("gfdl", "hadgem", "ipsl", ...)가 있습니다. 각 하위 폴더는 5개의 하위 폴더로 구성됩니다(예: "amazon"에서 하위 폴더 "gfdl"은 5개의 하위 폴더 'amazon_gfdl', 'amazon_gfdl1', ..., 'amazon_gfdl5'로 구성됨). 다른 하위 폴더는 동일한 구조를 따릅니다( 예를 들어, "amazon" 하위 폴더 "ipsl"에서는 "amazon_ipsl1", "amazon_ipsl2", ... "amazon_ipsl5"까지 5개의 하위 폴더로 구성됩니다. 따라서 내 질문은 다음과 같습니다. 다음: 각 하위 폴더("gfdl", "hadgem", "ipsl", ...)에 4개의 새 폴더("1", "2", "3", "4") 및 "amazon_gfdl"(이미 "gfdl"에 있음)과 같은 폴더를 각각의 새 디렉터리에 복사하고 마지막으로 "amazon_gfdl1"이 새 디렉터리 "1"로 이동되고, "amazon_gfdl2"가 새 디렉터리로 이동됩니다. 디렉토리 "2" 등! 현재 cp 명령을 사용하여 각 하위 폴더로 이동하고 있지만 실제로는 작동하지 않습니다. 이와 같은 임무를 완료하려면 추가 생명이 필요할 수 있습니다. 도움이나 팁을 주시면 감사하겠습니다! !

답변1

다음 줄에 따라 이 작업을 수행하는 작은 스크립트를 작성할 수 있습니다(필요에 따라 조정하세요. 내 이야기가 올바른지 잘 모르겠습니다).

> cat tst.sh 
#!/bin/bash
for river in amazon niger rhine ; do
    for name in gfdl hadgem ipsl ; do
        for count in 1 2 3 4 ; do
            mkdir ${river}/${name}/${count}
            cp -a ${river}/${name}/${river}_${name} ${river}/${name}/${count}
            mv ${river}/${name}/${river}_${name}${count} ${river}/${name}/${count}
        done
    done
done

실행하기 전에:

> find . | sort
.
./amazon
./amazon/gfdl
./amazon/gfdl/amazon_gfdl
./amazon/gfdl/amazon_gfdl1
./amazon/gfdl/amazon_gfdl2
./amazon/gfdl/amazon_gfdl3
./amazon/gfdl/amazon_gfdl4
./amazon/gfdl/amazon_gfdl5
...

결과:

> chmod u+x tst.sh
> ./tst.sh
> find . | sort
.
./amazon
./amazon/gfdl
./amazon/gfdl/1
./amazon/gfdl/1/amazon_gfdl
./amazon/gfdl/1/amazon_gfdl1
./amazon/gfdl/2
./amazon/gfdl/2/amazon_gfdl
./amazon/gfdl/2/amazon_gfdl2
./amazon/gfdl/3
./amazon/gfdl/3/amazon_gfdl
./amazon/gfdl/3/amazon_gfdl3
./amazon/gfdl/4
./amazon/gfdl/4/amazon_gfdl
./amazon/gfdl/4/amazon_gfdl4
./amazon/gfdl/amazon_gfdl
./amazon/gfdl/amazon_gfdl5
...

관련 정보