В Linux можно ограничить размер раздела, например, с помощью квоты. Но существует ли способ ограничить размер каталога? Например, у меня есть каталог, скажем /mnt/foo/bar
, который не является разделом (например, не в df
результат). Является ли это возможным? Нет mkfs
возможно в этом каталоге.
Не напрямую, вы можете создать файл размера, которым вы хотите ограничить каталог, а затем смонтировать его, используя монтирование цикла в дерево.
fallocate -l 100M disk.img
(это не всегда совместимо с базовой FS.)dd if=/dev/zero of=disk.img count=512k
mkfs disk.img
mount -o loop disk.img /path/to/mount/point
(при желании вы также можете включить квоты)То, о чем вы просите, было бы хорошей функцией, но я не знаю ни одной файловой системы с такой функцией. Лучшим приближением без добавления дополнительных файловых систем было бы использование квот, которые ограничивают пространство для хранения для каждого пользователя (или группы).
Одна из проблем с выполнением этого для каждого каталога заключается в том, что семантика не будет очевидной, если учесть возможность того, что файл может быть жестко привязан.
Рассмотрим следующую последовательность событий:
user1
запустить программу, которая создает файл журнала в ~user1
user2
создает жесткую ссылку в ~user2
user2
добавляет 900 МБ других файлов в ~user2
user1
добавляет 900 МБ данных в файл журналаuser1
удаляет файл журнала из ~user1
Нет ни одной из вышеперечисленных операций, вы могли бы ожидать сбоя из-за ограничений квоты. Но результат таков user2
в итоге намного превышает квоту.