Saya tahu cara membuat file kosong:
touch /var/tmp/nullbytes
tetapi bagaimana saya bisa membuat file 1MB yang hanya berisi nullbytes pada commandline dengan bash?
command-line
files
rubo77
sumber
sumber
Jawaban:
Dengan GNU
truncate
:(dengan asumsi
nullbytes
tidak ada sebelumnya) akan membuat file jarang 1 mebibyte. Itu adalah file yang muncul diisi dengan nol tetapi itu tidak memakan ruang pada disk.Tanpa
truncate
, Anda bisa menggunakandd
:(dengan beberapa
dd
implementasi, Anda dapat mengganti 1048576 dengan1M
)Jika Anda lebih suka ruang disk dialokasikan , di Linux dan beberapa sistem file, Anda bisa melakukan:
Itu mengalokasikan ruang tanpa benar-benar menulis data ke disk (ruang dicadangkan tetapi ditandai sebagai tidak diinisialisasi).
Akan benar-benar menulis nol ke disk. Itu yang paling efisien, tetapi jika Anda perlu drive Anda untuk berputar ketika mengakses file itu, itu yang Anda ingin pergi untuk.
Atau cara @ mikeserv untuk mengelabui
dd
menghasilkan byte NUL:Alternatif dengan GNU
head
yang tidak melibatkan harus menentukan ukuran blok (1M OK, tapi 10G misalnya tidak mau):Atau untuk mendapatkan bilah kemajuan:
sumber
truncate
untuk membuat file kosong untuk digunakan sebagai volume swap ... ini tidak akan berhasil! Gunakandd
dalam hal ini sebagai gantinya.dd
dapat membuat file jarang seperti yang saya tunjukkan juga.bs=1kx1k
. Atau<&1 dd bs=1kx1k conv=sync,noerror count="$rpt" | cat >file
untuk literal menulis ke disk. Tidak 100% pada seberapa banyak efisiensi yang mungkin hilang dalam memaksa kesalahan baca.sumber