EDIT: Cara termudah adalah mungkin truncate
dari Ashutosh Vishwa Bandhu ini jawaban , tapi seperti yang ditunjukkan oleh @ offby1 yang menciptakan file jarang yang mungkin tidak apa yang Anda inginkan. Solusi di bawah ini membuat file normal dan penuh.
Perintah berikut membuat file 14MB bernama foo
:
fallocate
(terima kasih kepada @Breakthrough yang menyarankannya dalam komentar dan memberikan suara untuk jawaban Ahmed Masud di bawah ini yang juga menyebutkannya.)
fallocate -l 14000000 foo
Perintah ini sangat mengesankan karena secepat truncate
(sesaat) terlepas dari ukuran file yang diinginkan (tidak seperti solusi lain yang akan lambat untuk file besar) dan membuat file normal, bukan yang jarang:
$ truncate -s 14MB foo1.txt
$ fallocate -l 14000000 foo2.txt
$ ls -ls foo?.txt
0 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:54 foo1.txt
13672 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:55 foo2.txt
Buat file yang diisi dengan data acak
dd if=/dev/urandom of=foo bs=14MB count=1
atau
head -c 14MB /dev/urandom > foo
Buat file yang diisi dengan \0
s:
dd if=/dev/zero of=foo.txt bs=14MB count=1
atau
head -c 14MB /dev/zero > foo
Buat file yang diisi dengan 14MB data pertama dari file lain:
head -c 14MB bar.txt > foo
Buat file yang diisi dengan 14MB data terakhir dari file lain:
tail -c 14MB bar.txt > foo
Dalam semua contoh di atas, file tersebut akan menjadi 14*1000*1000
jika Anda inginkan 14*1024*1024
, ganti MB
dengan M
. Sebagai contoh:
dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo
fallocate
hanya berurusan dengan byte, jadi Anda harus melakukan (14 * 1024 * 1024 = 14680064)
fallocate -l 14680064 foo