150개의 파일이 있는 디렉토리가 있는데 각각 25개의 파일이 있는 하위 디렉토리로 분할하고 싶습니다(1-25는 dir1, 26-50은 dir2 등). 어떻게 해야 하나요?
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
.