在 Ubuntu(Linux)里,文件夹本身不能直接限制大小,因为文件夹只是目录项,真正占空间的是里面的文件。所以“限制文件夹大小”通常有以下几种实现方式,按使用场景从简单到专业排列:
quota(用户/组级磁盘配额)✅ 推荐适合:多用户服务器、限制某个用户或组的总使用量
sudo apt update
sudo apt install quota
/etc/fstab假设你要限制的是 /home:
sudo nano /etc/fstab
在对应分区添加 usrquota,grpquota:
/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
sudo umount /home
sudo mount -a
sudo quotacheck -cum /home
sudo quotaon -v /home
sudo edquota username
示例(单位 KB):
blocks soft hard
500000 600000
表示软限制 500MB,硬限制 600MB
tmpfs(限制临时文件夹)⚠️ 适合临时目录适合:/tmp、缓存目录
sudo mount -t tmpfs -o size=100M tmpfs /myfolder
或写入 /etc/fstab:
tmpfs /myfolder tmpfs size=100M 0 0
✅ 重启后清空
❌ 不适合持久数据
loop + ext4 文件镜像(模拟固定大小文件夹)✅ 最灵活适合:限制某个特定目录大小
dd if=/dev/zero of=/data.img bs=1M count=500
(500MB)
mkfs.ext4 /data.img
mkdir /limited_folder
sudo mount /data.img /limited_folder
✅ 文件夹最大就是 500MB
❌ 需要手动管理镜像
systemd 限制服务写盘(高级)如果你是用某个程序写文件夹:
[Service]
ReadWritePaths=/limited_folder
配合 Quota 或 tmpfs 使用。
du + cron 定期检查并删文件(被动)inotify 监控(复杂、不稳定)| 场景 | 推荐方案 |
|---|---|
| 多用户限制 | quota |
| 临时目录 | tmpfs |
| 单目录严格限制 | loop 镜像 |
| 程序写盘 | systemd + quota |
如果你能说明:
我可以给你一套可直接复制执行的命令。