На ext2/3 можно использовать lseek, чтобы делать дырку в файле. Открываем файл на запись переходим за конец файла пишем, закрываем. ls -lh; df -h; Радуемся.
А вот можно ли сделать дырку внутри файла? Например внутри файла данные больше не нужны (гигабайта эдак два данных). Можно как-нибудь сказать ФС, что это место файла больше не нужно и его можно использовать под другие файлы?
Естественно не из под рута.