Quels autres outils dois-je utiliser pour lire et écrire des fichiers avec troncature, rechercher et ignorer. Les options de la ligne de commande de dd semblent incommodes et étrangères et je n'aime pas choisir entre le mode de recherche lent mais précis ( bs=1
) et le mode rapide mais rigide ( bs=4k
ou autre).
Existe-t-il des outils plus modernes pour lire 555 octets d'un fichier (ou pipe ou socket ou dev) à partir de la position 31337 et les écrire dans l'autre fichier à la position 128205 (en utilisant les blocs 512 + 43), avec ou sans troncature?
dd
. Vous pouvez toujours mettre un wrapper de script shell autour de lui si vous n'aimez pas l'interface.dd
est dans la norme POSIX , ce qui est un énorme avantage.status=noxfer
n'est pas par défaut et qui est cassée et dont j'ai besoiniflag=fullblock
(omettre dans certains scripts => données cassées).bs=1
=> l'ensemble du pipeline est lent. Par exemple, je peux vouloir vider un fichier vidéo à partir d'une image exacte. 2. "Il faut de l'arithmétique" => ne convient pas très bien aux oneliners et aux commandes de shell de routine.dd conv=seek_bytes
feraseek
fonctionner avec une précision d'octet.Réponses:
Il y a l'outil
ddrescue
(attention, il y a aussidd_rescue
un programme différent avec presque les mêmes fonctionnalités). Il utilise la syntaxe la plus familière avec le tiret simple pour le tiret court ou double pour les options longues. Depuis la page de manuel:la source
ddrescue - -
->Infile and outfile are the same.
,ddrescue /dev/stdin /dev/stdout
->Infile and outfile are the same.
. Mauvais début de l'histoire ...dd_rescue
. Il émet un avertissement indiquant que le fichier (stdin) n'est pas accessible, mais se poursuit. Vous pouvez l'essayer. Cependant,ddrescue
se sent plus complet et mature.ddrescue
a raison, les tuyaux ne sont pas recherchés. Si vous souhaitez commencer la lecture à un point spécifique d'un fichier, vous devez lui donner accès au fichier en question, et non aux données provenant d'un autre programme. Méfiez-vous également que l'utilisation de tuyaux lutte contre ce souhait pour la vitesse ultime, car la seule façon d'émuler la recherche dans un tuyau est de lire et de jeter les pièces que vous ne souhaitez pas traiter. La recherche dans un fichier réel est beaucoup plus efficace.dcfldd est une autre alternative à dd. Il ne répond pas à la question du PO sur la flexibilité de recherche d'entrée / sortie, mais peut être utile à d'autres personnes arrivant ici via la recherche Google.
Il est basé sur gnu dd, avec les fonctionnalités supplémentaires suivantes:
la source
Une bonne alternative est
pv
. Non seulement il calcule automatiquement la taille de bloc la plus efficace, accélérant essentiellement les choses, mais il fournit également des progrès, entre autres. Son utilisation est simple:Il joue bien aussi avec la compression. Un moyen rapide de sauvegarder et de compresser un disque en un seul mouvement est le suivant:
Vous pouvez en savoir plus ici .
la source