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

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

我的系统上有一个目录,供应用程序和用户出于特定原因使用,但我不希望其大小超过 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

无论如何,文件系统配额(或类似方法)并不像您希望的那样用户友好。此方法是单向灵活的,因为您可以增加大小在线的,但减少它会很困难。

命令:

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

相关内容