EDIT: En basit yol muhtemelen truncate
Ashutosh Vishwa Bandhu'nun cevabıdır , fakat @ offby1 tarafından belirtildiği gibi, istediğiniz gibi olmayan seyrek dosyalar oluşturur . Aşağıdaki çözümler normal, tam dosyalar oluşturur.
Aşağıdaki komutlar adında 14 MB bir dosya oluşturur foo
:
fallocate
(sayesinde @Breakthrough yorumlarda önerdi kim Ahmed Masud doldu oy cevabını da o bahseder aşağıda.)
fallocate -l 14000000 foo
Bu komut özellikle etkileyicidir, çünkü truncate
istenen dosya boyutuna bakılmaksızın (büyük dosyalar için yavaş olacak diğer çözümlerden farklı olarak) hızlı (anlık) ve nadiren de olsa normal dosyalar oluşturur:
$ 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
Rasgele verilerle dolu bir dosya oluşturun
dd if=/dev/urandom of=foo bs=14MB count=1
veya
head -c 14MB /dev/urandom > foo
\0
S ile dolu bir dosya oluşturun :
dd if=/dev/zero of=foo.txt bs=14MB count=1
veya
head -c 14MB /dev/zero > foo
Başka bir dosyanın ilk 14 MB'lık verileriyle dolu bir dosya oluşturun:
head -c 14MB bar.txt > foo
Başka bir dosyanın son 14 MB'lık verileriyle dolu bir dosya oluşturun:
tail -c 14MB bar.txt > foo
Yukarıdaki örneklerin hepsinde, 14*1000*1000
eğer istersen , dosya ile 14*1024*1024
değiştir . Örneğin:MB
M
dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo
fallocate
sadece bayt cinsinden fırsatlar, bu yüzden yapmanız gerekenler (14 * 1024 * 1024 = 14680064)
fallocate -l 14680064 foo