Вы можете попробовать создать фиктивный разреженный файл в рассматриваемой файловой системе с помощью truncate
, проверьте «видимый» и «реальный» размер.
Файловая система должна поддерживать флаг SEEK_HOLE
lseek
.
@DepressedDaniel указывает, что truncate
использует системный вызов ftruncate
.
Я не уверен, что для Bash существуют достаточно хорошие формальные грамматики.
Через несколько дней (18 сентября го 2017 )пройдет два семинара Gallium по этому вопросу (в INRIA в Париже ), И. Режи -Джанас(о Разбор оболочки POSIX)и Н. Яннерод(о Формализация промежуточного языка для оболочки POSIX).
(Людям из Gallium нравятся горячие темы исследований, поэтому я считаю, что это сложные темы; Я думаю, они бы опубликовали что-нибудь об этом)