在不尝试解决装箱问题的情况下,您可以使用这样的脚本:
#!/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
Run Code Online (Sandbox Code Playgroud)
小智 0
如果是单个10GB文件,可以尝试
split -b 4000000000 filename
Run Code Online (Sandbox Code Playgroud)