여러 폴더("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
...