Zná někdo alternativu pro „dd“, která nezkrátí soubor bez použití:conv=notrunc
. Přidání conv=notrunc
není podporováno přes busybox/toybox kvůli omezenému prostoru.
Například bych chtěl ekvivalent
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
Ale to by fungovalo tam, kde dd
nepodporuje conv=notrunc
.
Přijatá odpověď:
Použijte standardní <>
sh
operátor přesměrování, který otevře soubor v režimu čtení+zápis bez zkrácení .
cat < file.in 1<> file.out
Chcete-li zkopírovat obsah souboru file.in
na začátku file.out
.
Pokud potřebujete hledat ve vstupním nebo výstupním souboru a za předpokladu, že vaše dd
stále podporuje tyto směrnice:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
Pokud nemáte dd
vůbec, můžete zkusit head -c
, za předpokladu, že se vaše verze postará o ponechání ukazatele v souboru na správném místě po ukončení (což IIRC starší verze busyboxu nedělaly).
Například ekvivalent výše uvedeného by byl:
{
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