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