![큰 폴더를 동일한 크기의 작은 폴더로 분할하는 방법](https://linux55.com/image/144983/%ED%81%B0%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%ED%81%AC%EA%B8%B0%EC%9D%98%20%EC%9E%91%EC%9D%80%20%ED%8F%B4%EB%8D%94%EB%A1%9C%20%EB%B6%84%ED%95%A0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
다양한 파일 형식(예 .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