# fulldisk **Repository Path**: jdk8u341/fulldisk ## Basic Information - **Project Name**: fulldisk - **Description**: 简单的CLI填盘工具 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-05 - **Last Updated**: 2025-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fulldisk 简单的CLI填盘工具 # 磁盘填盘工具 (fulldisk) 这个Python脚本是一个高效的磁盘填盘工具,可以在Windows和Linux系统上快速填充磁盘空间。它支持多种填充模式,并可选择隐藏生成的文件(需要管理员权限)。 ## 功能特性 - **多平台支持**:兼容Windows和Linux系统 - **多种填充模式**: - 追加模式(append):在现有文件末尾追加数据 - 碎片模式(splinters):在目录树中随机创建多个小文件 - 单文件模式(onefile):创建一个单独的大文件 - **智能大小处理**:支持K/M/G/T单位,可自动填充剩余空间 - **文件隐藏**:可选择隐藏生成的文件(需要管理员权限) - **高效IO操作**:使用系统级API快速创建/扩展文件 - **权限检测**:自动检查管理员权限 - **进度显示**:使用tqdm显示实时进度 ## 系统要求 - Python 3.6+ - 操作系统:Windows 7+ 或 Linux - 管理员权限(如果需要隐藏文件) ## 安装依赖 ```bash pip install psutil tqdm ``` ## 使用说明 ### 基本语法 ```bash python fulldisk.py [选项] ``` ### 命令行选项 | 选项 | 缩写 | 描述 | 默认值 | 示例 | |------|------|------|--------|------| | `--path` | `-p` | 目标路径 | `./test` | `-p C:\\` | | `--size` | | 填充大小(支持K/M/G/T)或"full" | `10M` | `--size 5G` | | `--mode` | `-m` | 填充模式(a/append, s/splinters, o/onefile) | `onefile` | `-m a` | | `--hide` | | 是否隐藏文件 | `False` | `--hide True` | ### 使用示例 1. **单文件模式(默认)**: ```bash python fulldisk.py -p D:\ --size 2G ``` 2. **追加模式(隐藏文件)**: ```bash python fulldisk.py -p /home/user -m a --size full --hide True ``` 3. **碎片模式**: ```bash python fulldisk.py -p /tmp --size 500M -m s ``` 4. **使用全部剩余空间**: ```bash python fulldisk.py -p C:\ --size full ``` ## 注意事项 1. **管理员权限**: - 使用`--hide True`选项时需要管理员权限 - 在Windows上以管理员身份运行命令提示符 - 在Linux上使用`sudo` 2. **数据安全**: - 此工具会占用磁盘空间,可能导致其他程序无法正常运行 - 操作前请确保有足够的磁盘空间或备份重要数据 3. **文件恢复**: - 隐藏的文件可以通过系统设置或`chattr -i`(Linux)显示 - 删除生成的文件可以释放占用的空间 ## 工作原理 1. **检测权限**:首先检查当前用户是否具有管理员权限 2. **计算空间**:根据输入计算需要填充的空间大小 3. **文件操作**: - **Windows**:使用`SetFileValidData`高效创建文件 - **Linux**:使用`posix_fallocate`创建稀疏文件 4. **隐藏文件**: - Windows:设置文件属性为系统和隐藏 - Linux:重命名为隐藏文件并使用`chattr +i`锁定 5. **进度显示**:使用tqdm显示实时操作进度 ## 常见问题 **Q: 为什么文件隐藏功能不起作用?** A: 请确保以管理员权限运行脚本,并检查目标文件系统支持隐藏属性(NTFS/EXT4等) **Q: 如何释放占用的空间?** A: 删除生成的文件即可释放空间: - 单文件模式:删除`f{random}.dat`文件 - 碎片模式:搜索并删除所有`.dat`文件 - 追加模式:找到被修改的文件并删除/还原 **Q: 为什么实际占用的空间比指定的小?** A: 工具使用稀疏文件技术,实际磁盘占用可能小于指定大小,但保留的空间无法被其他程序使用 ## 免责声明 本工具仅用于技术研究和测试目的。使用前请确保您有操作权限,并了解可能导致的磁盘空间不足问题。作者不对使用此工具造成的任何数据丢失或系统问题负责。