我的系统上有一个目录,供应用程序和用户出于特定原因使用,但我不希望其大小超过 2GB,有没有办法设置某种限制,使文件大小不超过该限制或我决定在将来为其设置的任何其他大小?
当超出大小限制时,它应该撤消最后的更改(尽管应该有一个选项让它停止操作并且不关心是否复制了一半文件并留在那里),然后向用户显示警告。
我正在运行带有 GNOME 3.22 的 Ubuntu GNOME 16.10。
答案1
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
无论如何,文件系统配额(或类似方法)并不像您希望的那样用户友好。此方法是单向灵活的,因为您可以增加大小在线的,但减少它会很困难。
命令: