Saya memiliki skrip yang menulis ke beberapa file tetapi saya membutuhkannya dengan ukuran tertentu. Jadi saya bertanya-tanya apakah ada cara menambahkan sejumlah byte nol ke file dengan menggunakan alat baris perintah standar (misalnya, dengan menyalin dari /dev/zero
)?
26
oflag=append
berhasil untuk Anda?dd
perintah.fallocate
adalah pilihan lain untuk menyisipkan lubang ke dalam file. superuser.com/a/1172904/111432Jawaban:
truncate
jauh lebih cepat daripadadd
. Untuk menumbuhkan file dengan 10 byte gunakan:sumber
Anda dapat mencobanya juga
Ini akan membaca dari / dev / zero dan menambahkan ke file Anda NUMBER byte.
sumber
Di bawah ini adalah contoh menambahkan 10MB ke file hanya menggunakan dd.
sumber
tebakan pertama saya adalah:
Pada dasarnya, perintah ini memberitahu dd untuk "pergi" di akhir file dan menambahkan beberapa byte yang sebelumnya dibaca dari / dev / zero.
Salam,
sumber
atau
dan untuk menghitung ukuran lebih mudah:
sumber
Jika Anda mengisi file Anda dengan byte nol, tebakan saya adalah bahwa Anda memanipulasi file dalam huruf
char *
C. Jika ini yang terjadi, Anda mungkin tidak perlu memuat file dengan null byte, hanya menambahkan byte nol di bagian akhir. file dan kemudian padding dengan byte acak bisa cukup. Dalam hal ini, program C di bawah ini akan sangat efisien (hanya digunakan pada file yang lebih kecil dari parameter ke-2, jika tidak, data akan ditimpa). Bahkan mungkin melakukan apa yang Anda inginkan (padding dengan byte nol) karenalseek
definisi fungsi menyatakan bahwa:Dalam hal ini, panggilan pertama ke
lseek
danwrite
dapat dihapus. Tetapi tes harus dilakukan pada sistem Anda ... Pertama ...sumber