human_filesize() { awk -v sum="$1" ' BEGIN {hum[1024^3]="Gb"; hum[1024^2]="Mb"; hum[1024]="Kb"; for (x=1024^3; x>=1024; x/=1024) { if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x]; break; } } if (sum<1024) print "1kb"; } '}
Эта команда преобразует размер файла, переданный в байтах, в человекочитаемый формат (Гб, Мб, Кб) и выводит его. Аргументом команды является размер файла в байтах. Альтернативой может быть использование интегрированных утилит, таких как du -h
или ls -lh
, для получения человекочитаемого размера файла.