Cuando uso xz para comprimir un dispositivo de bloque (por ejemplo /dev/sda1
), --verbose
muestra el tamaño actual leído del archivo de entrada (128 MiB a continuación). Sin embargo, no muestra el porcentaje de lectura del archivo de entrada ( --- %
a la izquierda). ¿Es posible darle a xz una pista sobre el tamaño de este dispositivo para que pueda mostrar el porcentaje? Por ejemplo, al comprimir un archivo normal, xz se muestra 0.7 %
a continuación.
$ sudo xz -1ck --verbose /dev/sda1 > /dev/null
/dev/sda1 (1/1)
--- % 12.2 MiB / 128.0 MiB = 0.095 21 MiB/s 0:06
^C
$ sudo xz -1ck --verbose a_normal_file > /dev/null
a_normal_file (1/1)
0.7 % 11.6 MiB / 12.7 MiB = 0.916 2.3 MiB/s 0:05
^C
$
Respuesta1
xz
no tiene capacidad para ver el tamaño de las particiones ya que no son archivos comunes y, por lo tanto, no informará sobre ello.
Sin embargo, lo que podrías hacer es procesarlo con dd if=/dev/sda1 status=progress | xz -1k --verbose > /dev/null
. Aunque no obtendrás los xz
detalles. Lo que tendría que hacer es redirigir la salida de cada uno a tty
archivos o archivos separados tail
.
Respuesta2
El tamaño de la partición (kibibytes) se puede obtener de /proc/partitions
, luego dd
se puede pasar la salida pv
, de esta manera:
$ kb=$(grep $(basename /dev/sdb1) /proc/partitions | awk '{print $3}')
$ sudo dd if=/dev/sdb1 | pv -s ${kb}K | xz -1k >/dev/null
72,2MiO 0:00:20 [2,58MiB/s] [========> ] 28% ETA 0:00:49