내 ext4 파티션에는 매우 작은 파일이 많이 포함된 디렉토리가 있습니다. 클러스터 크기가 다른 파일 시스템에 복사할 경우(실제로 복사하지 않고) 얼마나 많은 공간을 사용할지 어떻게 알 수 있나요? FAT16과 마찬가지로 클러스터 크기는 32KB입니다.
답변1
이 작업을 수행할 수 있는 특정 도구가 있는지는 모르겠지만 정말로 알아내고 싶다면 다음과 같은 작업을 수행합니다(물론 스크립트/프로그램에서). 파일 수를 세고 다음과 같이 곱합니다. 클러스터의 크기. 물론 "범위"를 확인해야 합니다. 즉, 크기를 보고 4KB, 8KB, 32KB 또는 64KB 클러스터가 필요한지 확인해야 합니다.
이것은 단지 생각일 뿐이며 틀릴 수도 있습니다. 그러나 다른 사람이 이 작업을 수행할 수 있는 프로그램을 알지 않는 한 최소한 쉽게 추정할 수는 있습니다.
답변2
다음은 bash/awk 스크립트입니다:
#!/bin/bash
find . -type f -printf '%s\n' | awk '
function ceil(number) {
if (number == int(number)) {
return (number);
}
return int(number) + 1;
}
function ceilWithUnit(number, unit) {
return ceil(number / unit) * unit;
}
BEGIN {
blockSize = 32 * 1024;
fileSizeSum = 0;
diskUsage = 0;
}
{
diskUsage += ceilWithUnit($0, blockSize);
fileSizeSum += $0;
}
END {
printf("File count: %u\n", NR);
printf("Average size: %.2f KB\n", fileSizeSum / NR / 1024);
printf("Disk usage with %d bytes blocks: %.2f MB\n", blockSize, diskUsage / 1024 / 1024);
}
'