约 7439 字

约 37 分钟

#Bash 的 fallocate 命令

fallocate [OPTIONS] FILE

功能

为文件预分配磁盘空间,或取消预分配的空间。

类型

可执行文件(/usr/bin/fallocate),属于 util-linux。

参数

  • OPTIONS 选项:
    • -c, --collapse-range - 折叠(删除)指定区间,并将其后的数据向前移动
    • -d, --dig-holes - 检测和释放空洞,但保留文件大小
    • -i, --insert-range - 在指定偏移处插入一段空洞,并将后续数据向后移动
    • -l, --length LENGTH - 在 LENGTH 长度内进行操作
    • -n, --keep-size - 保持文件逻辑大小不变
    • -o, --offset OFFSET - 从 OFFSET 位置之后开始操作
    • -p, --punch-hole - 将指定区域作为空洞释放,此后读取该返回将得到零
    • -v, --verbose - 显示详细的操作信息
    • -x, --posix - 使用 POSIX 兼容的空间预分配方式
    • -z, --zero-range - 将指定区间置零
    • --help - 显示帮助
    • --version - 显示版本
  • FILE - 要操作的问题

#示例

$ fallocate -l 10M 1.txt                # 为文件分配 10M 空间
$ ls -lh 1.txt                          # 查看文件大小
-rw-r--r-- 1 primers primers 10M Sep 21 10:42 1.txt
$ du -h 1.txt                           # 查看文件实际占用的大小
10M     1.txt
$ fallocate -d 1.txt                    # 释放空洞
$ ls -lh 1.txt                          # 查看文件大小
-rw-r--r-- 1 primers primers 10M Sep 21 10:42 1.txt
$ du -h 1.txt                           # 查看文件实际占用的大小
4.0K     1.txt

#推荐阅读

#手册

更新: 2026/9/21

作者: planc

创建: 2026/1/15