Kennt jemand eine Alternative für 'dd', die die Datei nicht abschneidet, ohne zu verwenden:conv=notrunc . Hinzufügen von conv=notrunc wird aufgrund des begrenzten Speicherplatzes nicht über Busybox/Toybox unterstützt.
Ich möchte zum Beispiel das Äquivalent von
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
Aber das würde dort funktionieren, wo dd unterstützt conv=notrunc nicht .
Akzeptierte Antwort:
Verwenden Sie den Standard <> sh Umleitungsoperator, der die Datei ohne Kürzung im Lese-/Schreibmodus öffnet .
cat < file.in 1<> file.out
Um den Inhalt von file.in zu kopieren am Anfang von file.out .
Wenn Sie in der Eingabe- oder Ausgabedatei suchen müssen und Ihre dd annehmen unterstützt weiterhin diese Direktiven:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
Wenn Sie dd nicht haben überhaupt, Sie können head -c versuchen , vorausgesetzt, Ihre Version sorgt dafür, dass der Zeiger in der Datei beim Beenden an der richtigen Stelle bleibt (was bei älteren IIRC-Versionen von busybox nicht der Fall war).
Das Äquivalent zu Obigem wäre beispielsweise:
{
head -c 8 > /dev/null # seek input fd to offset 8
head -c 12 <&1 > /dev/null # seek output fd to offset 12
head -c 12 # copy 12 bytes
} < file.in 1<> file.out