如何将大文件夹拆分为大小相等的小文件夹

如何将大文件夹拆分为大小相等的小文件夹

我有一个大文件夹,里面有很多文件类型(例如.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

相关内容