GNU/Linux >> Tutoriales Linux >  >> Linux

dd con obs y seek crea un archivo de tamaño inesperado

Su comando dd if=/dev/zero of=./foo count=1 bs=1 obs=9 seek=1 crea un archivo de dos bytes en lugar de un archivo de 10 bytes debido a una interacción mal definida entre bs y obs . (Llame a esto un error de programa si lo desea, pero probablemente esté mejor definido como un error de documentación). Se supone que debe usar cualquiera bs o ibs y obs .

Empíricamente parece que bs anula obs , entonces lo que se ejecuta es dd if=/dev/zero of=./foo count=1 bs=1 seek=1 , que crea un archivo de dos bytes como has visto.

Si hubiera usado dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1 habría obtenido un archivo de 10 bytes como se esperaba.

Como alternativa, si desea crear un archivo vacío que no ocupe ningún espacio de datos en el disco, puede usar el nombre contrario a la intuición truncate comando:

truncate --size=10 foo

La página de manual de POSIX dice:

ibs=expr

Especifique el tamaño del bloque de entrada, en bytes, por expr (el valor predeterminado es 512).

obs=expr

Especifique el tamaño del bloque de salida, en bytes, por expr (el valor predeterminado es 512).

bs=expr

Establecer tanto entrada como salida tamaños de bloque a expr bytes, reemplazandoibs=y obs= . Si no se especifica ninguna otra conversión que no sea sync, noerror y notrunc, cada bloque de entrada se copiará en la salida como un solo bloque sin agregar bloques cortos.

dd de Linux funciona de la misma manera. Por lo tanto, use ibs en cambio:

dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1

Linux
  1. Cifrado y descifrado de archivos simplificado con GPG

  2. Cifrado y descifrado de archivos con ccrypt

  3. ¿Por qué Ls y Hexdump no están de acuerdo sobre el tamaño del archivo?

  4. Linux eliminar archivo con tamaño 0

  5. ¿Reproducir un video con gstreamer y gst-launch?

Comando Linux Zip y Unzip con ejemplos

Explicación de Soft Link y Hard Link en Linux con ejemplos

Manipulación de texto con sed y grep

Cómo trabajar con enlaces duros y suaves en Linux

Cómo trabajar con File y Shell Provisioner en Vagrant

Administre directorios y permisos de archivos con chmod Recursive