Aslında mümkün olan son Linux sistemlerinde, ancak blokla (çoğu zaman 4096), bayt ayrıntı düzeyini değil , sadece bazı dosya sistemlerinde (ext4 ve xfs).
Manpage'den alıntı fallocate(2):
int fallocate(int fd, int mode, off_t offset, off_t len);
[...]
Daralan dosya alanı
FALLOC_FL_COLLAPSE_RANGEBayrağını (Linux 3.15'ten beri kullanılabilir) belirtmek, modebir boşluk bırakmadan dosyadaki bayt aralığını kaldırır. Daraltılacak bayt aralığı
bayttan başlar offsetve lenbayt boyunca devam eder . İşlem tamamlandığında, konumdan başlayan dosyanın içeriği konuma offset+leneklenir
offsetve dosya lenbayt daha küçük olur.
[...]
Dosya alanını artırma
FALLOC_FL_INSERT_RANGEBayrağı (Linux 4.1'den beri kullanılabilir) belirtmek, modevarolan verilerin üzerine yazmadan dosya boyutuna bir delik ekleyerek dosya alanını artırır. Delik başlar offsetve lenbayt boyunca
devam eder . Dosyanın içindeki deliği eklerken, dosyadan başlayan dosyanın içeriği bayt offsettarafından yukarı kaydırılır (yani, daha yüksek bir dosya ofsetine) len. Dosyanın içine bir delik eklemek dosya boyutunu lenbayt artırır .