Adakah yang tahu alternatif untuk 'dd', yang tidak akan memotong file, tanpa menggunakan:conv=notrunc . Menambahkan conv=notrunc tidak didukung melalui busybox/toybox karena ruang terbatas.
Misalnya, saya ingin yang setara dengan
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
Tapi itu akan berhasil di mana dd tidak mendukung conv=notrunc .
Jawaban yang Diterima:
Gunakan <> standar sh operator pengalihan yang membuka file dalam mode baca+tulis tanpa pemotongan .
cat < file.in 1<> file.out
Untuk menyalin konten file.in di awal file.out .
Jika Anda perlu mencari di file input atau output, dan dengan asumsi dd . Anda masih mendukung arahan ini:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
Jika Anda tidak memiliki dd sama sekali, Anda dapat mencoba head -c , dengan asumsi versi Anda menangani meninggalkan pointer di file di tempat yang tepat saat keluar (yang tidak dilakukan oleh busybox versi IIRC yang lebih lama).
Misalnya, padanan di atas adalah:
{
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