Cela devrait le faire (sur gnu dd) :
dd if=somefile bs=4096 skip=1337 count=31337000 iflag=skip_bytes,count_bytes
Si vous utilisez également seek=
, vous pouvez également envisager oflag=seek_bytes
.
De info dd
:
`count_bytes'
Interprète l'opérande `count=' comme un compte de bytes, plutôt qu'un compte de blocs, ce qui permet de spécifier une longueur qui n'est pas un multiple de la taille de bloc d'E/S. Ce drapeau ne peut être utilisé qu'avec `iflag'.
`skip_bytes'
Interprète l'opérande `skip=' comme un compte de bytes, plutôt qu'un compte de blocs, ce qui permet de spécifier un décalage qui n'est pas un multiple de la taille de bloc d'E/S. Ce drapeau ne peut être utilisé qu'avec `iflag'.
`seek_bytes'
Interprète l'opérande `seek=' comme un compte de bytes, plutôt qu'un compte de blocs, ce qui permet de spécifier un décalage qui n'est pas un multiple de la taille de bloc d'E/S. Ce drapeau ne peut être utilisé qu'avec `oflag'.
Ps : Je comprends que cette question est ancienne et il semble que ces drapeaux ont été implémentés après que la question ait été posée à l'origine, mais comme c'est l'un des premiers résultats de recherche sur Google pour une recherche dd connexe que j'ai faite, j'ai pensé qu'il serait bon de le mettre à jour avec la nouvelle fonctionnalité.
Remarque : cette réponse s'applique uniquement à GNU dd, utilisé par la plupart des distributions Linux, il fait partie du paquet GNU coreutils, cette fonctionnalité a été introduite dans la version 8.16 des coreutils (2012-03-26, quelques mois après que la question initiale ait été répondue).
Remarque pour les utilisateurs de Mac : MacOS utilise une variante basée sur bsd des utilitaires unix (principalement pour des raisons de licence), mais les versions GNU des utilitaires unix en général ont un développement beaucoup plus actif et ont généralement beaucoup plus de fonctionnalités. Vous pouvez installer GNU coreutils sur Mac avec Homebrew : brew install coreutils
.