Welche anderen Tools sollte ich verwenden, um Dateien mit Kürzung, Suche und Überspringen zu lesen und zu schreiben. Die Befehlszeilenoptionen von dd scheinen unpraktisch und fremd und ich mag es nicht, zwischen langsamem, aber präzisem Suchmodus ( bs=1
) und schnellem, aber unflexiblem Modus ( bs=4k
oder was auch immer) zu wählen .
Gibt es modernere Tools zum Lesen von 555 Bytes aus einer Datei (oder Pipe oder Socket oder Dev) von Position 31337 und zum Schreiben in die andere Datei an Position 128205 (unter Verwendung der Blöcke 512 + 43), mit oder ohne Kürzung?
dd
. Sie können immer einen Shell-Script-Wrapper darum legen, wenn Sie die Oberfläche nicht mögen.dd
ist im POSIX-Standard , was ein großes Plus ist.status=noxfer
die nicht standardmäßig ist und kaputt ist und die ich braucheiflag=fullblock
(in einigen Skripten weglassen => kaputte Daten).bs=1
=> Die gesamte Pipeline ist langsam. Zum Beispiel möchte ich vielleicht die Videodatei ab einem bestimmten Frame sichern. 2. "Es braucht etwas Arithmetik" => nicht sehr geeignet für Oneliners und Routine-Shell-Befehle.dd conv=seek_bytes
macht dieseek
Arbeit mit Byte Präzision.Antworten:
Es gibt das Tool
ddrescue
(aufgepasst, es gibt auchdd_rescue
ein anderes Programm mit fast der gleichen Funktionalität). Es wird die bekanntere Syntax mit dem einfachen Bindestrich für kurze oder dem doppelten Bindestrich für lange Optionen verwendet. Von der Manpage:quelle
ddrescue - -
->Infile and outfile are the same.
,ddrescue /dev/stdin /dev/stdout
->Infile and outfile are the same.
. Schlechter Anfang der Geschichte ...dd_rescue
. Es wird eine Warnung ausgegeben, dass die Datei (stdin) nicht suchbar ist, sondern fortgesetzt wird. Du kannst es versuchen. Fühltddrescue
sich jedoch voller und ausgereifter an.ddrescue
Stimmt, Pfeifen sind nicht suchbar. Wenn Sie an einer bestimmten Stelle in einer Datei mit dem Lesen beginnen möchten, müssen Sie ihr Zugriff auf die betreffende Datei gewähren, nicht auf Daten, die von einem anderen Programm weitergeleitet wurden. Beachten Sie auch, dass die Verwendung von Pipes Ihrem Wunsch nach höchster Geschwindigkeit widerspricht, da die einzige Möglichkeit, die Suche in einer Pipe zu emulieren, darin besteht, die Teile zu lesen und wegzuwerfen, die Sie nicht verarbeiten möchten. Das Suchen in einer tatsächlichen Datei ist weitaus effizienter.dcfldd ist eine weitere Alternative von dd. Es geht nicht auf die Frage des OP nach der Flexibilität der Eingabe- / Ausgabesuche ein, kann jedoch für andere nützlich sein, die hier über die Google-Suche ankommen.
Es basiert auf gnu dd mit den folgenden zusätzlichen Funktionen:
quelle
Eine gute Alternative ist
pv
. Es berechnet nicht nur automatisch die effizienteste Blockgröße, was die Dinge wesentlich beschleunigt, sondern liefert auch unter anderem Fortschritte. Die Verwendung ist einfach:Es spielt auch gut mit Komprimierung. Eine schnelle Methode zum Sichern und Komprimieren einer Festplatte in einem Schritt lautet wie folgt:
Sie können erfahren Sie mehr hier .
quelle