さまざまなファイル形式(たとえば.txt
).sh
を含む大きなフォルダがあります。約40GB程度になります。私はそれぞれ10Gbの4つの部分に分けたい。この目標をどのように達成できますか?
ベストアンサー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