¿Alguien sabe una alternativa para 'dd', que no truncará el archivo, sin usar:conv=notrunc . Agregando conv=notrunc no se admite a través de busybox/toybox debido a la cantidad limitada de espacio.
Por ejemplo, me gustaría el equivalente de
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
Pero eso funcionaría donde dd no es compatible con conv=notrunc .
Respuesta aceptada:
Utilice el <> estándar sh operador de redirección que abre el archivo en modo lectura+escritura sin truncamiento .
cat < file.in 1<> file.out
Para copiar el contenido de file.in al comienzo de file.out .
Si necesita buscar en el archivo de entrada o salida, y asumiendo su dd sigue siendo compatible con estas directivas:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
Si no tiene dd en absoluto, puedes probar head -c , suponiendo que su versión se encargue de dejar el puntero en el archivo en el lugar correcto al salir (lo que no hacían las versiones anteriores de busybox del IIRC).
Por ejemplo, el equivalente de lo anterior sería:
{
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