기본 디렉터리의 파일을 하위 디렉터리의 더 작은 양의 파일로 구성하는 방법

기본 디렉터리의 파일을 하위 디렉터리의 더 작은 양의 파일로 구성하는 방법

나는 각각 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.

관련 정보