폴더의 내용을 하위 폴더로 분할하는 방법

폴더의 내용을 하위 폴더로 분할하는 방법

자동으로(프로그래밍 방식으로,세게 때리다스크립트)는 폴더의 내용을 상위 폴더가 있는 하위 폴더로 분할합니다.

예를 들어 580개의 파일(동일한 접미사 포함)이 있는 폴더가 있고 이를 예를 들어 등의 이름을 가진 6개의 하위 폴더로 분할하고 모든 100개의 파일을 저장하려고 합니다 subfolder1( subfolder2나머지 파일을 포함하는 마지막 파일 제외). 또는 균등하게 분할하는 것이 더 쉽습니다).

감사해요

답변1

zsh대신 사용하십시오 bash:

subfolders=( subfolder{1..6} )
files=( *(N.) )
n=100
while (( $#files && $#subfolders )); do
  mkdir -p -- $subfolders[1] && mv -- $files[1,100] $subfolders[1]/
  subfolders[1]=() files[1,100]=()
done

zmv(zsh의 대량 이름 바꾸기)를 사용하여 순환 방식으로 이동할 수도 있습니다.

autoload -Uz zmv
subfolders=( subfolder{1..6} )
mkdir -p -- $subfolders
(n=0; zmv '*(#q.)' '$subfolders[n++ % $#subfolders + 1]/$f')

관련 정보