Qualcuno conosce un'alternativa per 'dd', che non troncherà il file, senza usare:conv=notrunc
. Aggiunta di conv=notrunc
non è supportato tramite busybox/toybox a causa dello spazio limitato.
Ad esempio, vorrei l'equivalente di
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
Ma funzionerebbe dove dd
non supporta conv=notrunc
.
Risposta accettata:
Utilizzare lo standard <>
sh
operatore di reindirizzamento che apre il file in modalità lettura+scrittura senza troncamento .
cat < file.in 1<> file.out
Per copiare il contenuto di file.in
all'inizio di file.out
.
Se hai bisogno di cercare nel file di input o output e assumendo il tuo dd
supporta ancora queste direttive:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
Se non hai dd
a tutti, puoi provare head -c
, supponendo che la tua versione si occupi di lasciare il puntatore nel file nel posto giusto all'uscita (cosa che le versioni precedenti di Busybox IIRC non stavano facendo).
Ad esempio, l'equivalente di quanto sopra sarebbe:
{
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