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