
나는 각각 25개 파일의 하위 디렉터리(1-25는 dir1로, 26-50은 dir2로)로 분할하고 싶은 150개 파일의 디렉터리를 가지고 있습니다. 이 작업을 어떻게 수행할 수 있나요?
dir1/fre_4_g2_c3654214.h3
dir1/fre_4_g2_c0585433.h3
dir1/fre_4_g2_c3565415.h3
... 등등
그리고 내가 하고 싶은 것은
dir1/fre_4_g2_c3654214.h3
dir2/fre_4_g2_c0585433.h3
dir3/fre_4_g2_c3565415.h3
답변1
이렇게 하면 파일이 영숫자순으로 정렬되고 모든 파일이 이동될 때까지 처음 25개 파일은 하위 디렉터리로 이동되고 dir0
다음 25개 파일은 로 이동 됩니다.dir1
n=0; for f in *; do d="dir$((n++ / 25))"; mkdir -p "$d"; mv -- "$f" "$d/$f"; done
명령이 여러 줄에 걸쳐 분산되는 것을 선호하는 경우:
n=0
for f in *
do
d="dir$((n++ / 25))"
mkdir -p "$d"
mv -- "$f" "$d/$f"
done
ksh
이는 또는 에서 작동합니다 bash
.