큰 폴더를 동일한 크기의 작은 폴더로 분할하는 방법

큰 폴더를 동일한 크기의 작은 폴더로 분할하는 방법

다양한 파일 형식(예 .txt: .sh)이 포함된 큰 폴더가 있습니다. 약 40GB 정도 됩니다. 나는 그것을 각각 10Gb의 네 부분으로 나누고 싶습니다. 이 목표를 어떻게 달성할 수 있나요?

답변1

문제를 해결하려고 노력할 필요가 없습니다.복싱 문제, 다음과 같은 스크립트를 사용할 수 있습니다.

#!/bin/bash                                                                     
directory=${1:-testdir}                                                         
sizelimit=${2:-1000} # in MB                                                    
sizesofar=0                                                                     
dircount=1                                                                      
du -s --block-size=1M "$directory"/* | while read -r size file                  
do                                                                              
  if ((sizesofar + size > sizelimit))                                           
  then                                                                          
    (( dircount++ ))                                                            
    sizesofar=0                                                                 
  fi                                                                            
  (( sizesofar += size ))                                                       
  mkdir -p -- "$directory/sub_$dircount"                                           
  mv -- "$file" "$directory/sub_$dircount"                                           
done 

답변2

단일 10GB 파일인 경우 시도해 볼 수 있습니다.

split -b 4000000000 filename

관련 정보