A cota usual do sistema de arquivos no ext4 é por usuário / grupo, não por diretório. O ZFS pode definir uma cota de diretório, criando um sistema de arquivos de tamanho fixo em um volume ZFS. Um truque simples, porém, é criar um arquivo de 2 GB, criar um sistema de arquivos e montá-lo na pasta desejada:
$ touch 2gbarea
$ truncate -s 2G 2gbarea
$ mke2fs -t ext4 -F 2gbarea
mke2fs 1.43.3 (04-Sep-2016)
Discarding device blocks: done
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: bf1b2ee8-a7df-4a57-9d05-a8b60323e2bf
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
$ sudo mount 2gbarea up
$ df -h up
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 2.0G 6.0M 1.8G 1% /home/muru/up
De qualquer forma, as cotas do sistema de arquivos (ou métodos como este) não são tão amigáveis quanto você deseja. Esse método é flexível unidirecional, pois você pode aumentar o tamanho on-line , mas diminuí-lo seria difícil.
Os comandos:
touch
: touch 2gbarea
cria um arquivo vazio chamado 2gbarea
.
truncate
: truncate
é usado para redimensionar arquivos (neste caso, redimensiono o 2gbarea
arquivo vazio no momento para 2 GB usando -s 2G
).
mke2fs
: mke2fs
cria sistemas de arquivos ext2 / 3/4 (neste caso, ext4).
mount
monta o sistema de arquivos no diretório especificado.
df
é usado para listar o uso do sistema de arquivos.