bscalc - manual de referencia, opciones, ejemplos de comandos


NOMBRE

DESCRIPCIÓN

El objetivo de este proyecto es proporcionar una pequeña biblioteca que facilite las operaciones comunes con tamaños en bytes. Muchos proyectos necesitan trabajar con tamaños en bytes (ya sean tamaños de espacio de almacenamiento, memoria,...) y todos ellos necesitan lidiar con los mismos problemas como:

  • ¿Cómo obtener una cadena legible por humanos para el tamaño dado?

  • ¿Cómo almacenar el tamaño dado para que no se pierda información significativa?

  • Si almacenamos el tamaño en bytes, ¿qué pasa si el tamaño dado supera el valor MAXUINT64?

  • ¿Cómo interpretar los tamaños ingresados por los usuarios de acuerdo con su ubicación y convenciones de escritura?

  • ¿Cómo lidiar con la ambigüedad de las unidades decimales/binarias (MB vs. MiB)?

Algunos proyectos tienen todas las preguntas/inquietudes anteriores bien abordadas, algunos las tienen abordadas parcialmente, a otros simplemente no les importa. Sin embargo, tener soluciones (parciales) implementadas en múltiples lugares cada vez con un conjunto diferente de errores, diferencias en el comportamiento y esto o aquello que falta es una pérdida de tiempo y esfuerzo. Necesitamos una solución de uso general que pueda ser utilizada por cada proyecto que necesite lidiar con tamaños en bytes.

Dado que el objetivo es proporcionar una solución que sea lo más utilizable posible, la implementación debe ser pequeña, rápida y estar escrita en un lenguaje que pueda interactuar fácilmente con otros lenguajes. La opción obvia actual es el lenguaje C con enlaces delgados para otros lenguajes.

SINOPSIS

bscalc [-h] [--version] [-u {B,KiB,MiB,GiB,TiB,PiB,EiB,KB,MB,GB,TB,PB,EB}] [-b] [-k] [-m] [-g] [-t] [-p] [-e] [--KB] [--MB] [--GB] [--TB] [--PB] [--EB] [-H] EXPRESSION_PART [EXPRESSION_PART ...]

USO

bscalc [OPTIONS] EXPRESSION_PART [EXPRESSION_PART ...]

Donde EXPRESSION_PART son argumentos posicionales.

OPCIONES

-h, --help

mostrar este mensaje de ayuda y salir

--version

mostrar el número de versión del programa y salir

-u {B,KiB,MiB,GiB,TiB,PiB,EiB,KB,MB,GB,TB,PB,EB}, --unit {B,KiB,MiB,GiB,TiB,PiB,EiB,KB,MB,GB,TB,PB,EB}

Unidad para mostrar el resultado en

-b, -B

Mostrar resultado en bytes

-k, -K, --KiB

Mostrar resultado en KiB

-m, -M, --MiB

Mostrar resultado en MiB

-g, -G, --GiB

Mostrar resultado en GiB

-t, -T, --TiB

Mostrar resultado en TiB

-p, -P, --PiB

Mostrar resultado en PiB

-e, -E, --EiB

Mostrar resultado en EiB

--KB

Mostrar resultado en KB

--MB

Mostrar resultado en MB

--GB

Mostrar resultado en GB

--TB

Mostrar resultado en TB

--PB

Mostrar resultado en PB

--EB

Mostrar resultado en EB

-H, --human-readable

Mostrar solo el 'mejor' resultado

Informe problemas en https://github.com/storaged-project/libbytesize/issues

EJEMPLOS

1. Convertir 1000000000000 bytes a unidades superiores:

bscalc 1000000000000

Producción:

1000000000000 B
 976562500.00 KiB
    953674.32 MiB
       931.32 GiB
         0.91 TiB

2. Convierta 1000000000000 bytes a la unidad superior más apropiada:

bscalc -H 1000000000000

Producción:

931.32 GiB