GNU/Linux >> Tutoriels Linux >  >> Linux

dd avec obs et seek crée un fichier de taille inattendue

Votre commande dd if=/dev/zero of=./foo count=1 bs=1 obs=9 seek=1 crée un fichier à deux octets plutôt qu'un fichier à 10 octets en raison d'une interaction mal définie entre bs et obs . (Appelez cela un bogue de programme si vous voulez, mais c'est probablement mieux défini comme un bogue de documentation.) Vous êtes censé utiliser soit bs ou ibs et obs .

Empiriquement, il apparaît que bs remplace obs , donc ce qui est exécuté est dd if=/dev/zero of=./foo count=1 bs=1 seek=1 , qui crée un fichier à deux octets comme vous l'avez vu.

Si vous aviez utilisé dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1 vous auriez obtenu un fichier de 10 octets comme prévu.

Comme alternative, si vous voulez créer un fichier vide qui ne prend pas d'espace de données sur le disque, vous pouvez utiliser le nom contre-intuitif truncate commande :

truncate --size=10 foo

La page de manuel POSIX indique :

ibs=expr

Spécifiez la taille du bloc d'entrée, en octets, par expr (la valeur par défaut est 512).

obs=expr

Spécifiez la taille du bloc de sortie, en octets, par expr (la valeur par défaut est 512).

bs=expr

Définir à la fois l'entrée et la sortie tailles de bloc en octets expr, supersedingibs=et obs= . Si aucune conversion autre que sync, noerror et notrunc n'est spécifiée, chaque bloc d'entrée doit être copié dans la sortie en tant que bloc unique sans agréger les blocs courts.

dd de Linux fonctionne de la même manière. Ainsi, utilisez ibs à la place :

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

Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Réduisez la taille du PDF avec cette astuce de ligne de commande

  3. Chiffrement et déchiffrement de fichiers simplifiés avec GPG

  4. Chiffrement et déchiffrement de fichiers avec ccrypt

  5. Comment créer un fichier avec une taille donnée sous Linux ?

Commande Linux Zip et Unzip avec exemples

Expliquer Soft Link et Hard Link sous Linux avec des exemples

Manipuler du texte avec sed et grep

Comment travailler avec des liens durs et des liens souples sous Linux

Comment travailler avec File and Shell Provisioner dans Vagrant

Gérer les autorisations de répertoire et de fichier avec chmod Recursive