如何设置目录的文件大小限制?

我的系统上有一个目录,由于应用程序和用户的特定原因而使用,但我不希望它的大小超过2GB,有没有办法设置某种限制但是没有允许文件大小超过我决定将来为其设置的那个或任何其他金额?

当超出大小限制时,它应该撤消上一次更改(尽管应该有一个选项,以便它只是停止操作并且不关心是否有一半文件被复制并留在那里)然后显示警告用户。

我正在使用GNOME 3.22运行Ubuntu GNOME 16.10。

ext4上的常用文件系统配额是每用户/组,而不是每个目录。 ZFS可以通过从ZFS卷创建固定大小的文件系统来排序目录配额。 但是,一个简单的技巧是创建一个2GB的文件,在其上创建一个文件系统,并将其挂载到所需的文件夹:

$ 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 

在任何情况下,文件系统配额(或类似的方法)都不是您想要的用户友好。 这种方法是单向灵活的,因为你可以在线增加大小,但减少它会很困难。

命令:

  • touchtouch 2gbarea创建一个名为2gbarea的空文件。
  • truncatetruncate用于调整文件大小(在这种情况下,我使用-s 2G将当前空的2gbarea文件调整为2 GB)。
  • mke2fsmke2fs创建ext2 / 3/4文件系统(在本例中为ext4)。
  • mount将文件系统挂载到给定目录中。
  • df用于列出文件系统使用情况。