6 个版本 (1 个稳定版本)
1.0.0 | 2022 年 3 月 17 日 |
---|---|
0.2.4 | 2022 年 1 月 6 日 |
0.2.1 | 2021 年 12 月 1 日 |
0.2.0 | 2021 年 11 月 30 日 |
在 命令行工具 中排名 1736
50KB
1K SLoC
Chopstick
Chopstick 提供了两个命令行程序(chop
和 stick
),允许快速将文件分割成部分。 chop
将文件分割成部分,而 stick
则将它们重新组合
该项目旨在以尽可能简单的方式完成,同时最小化可执行文件的大小。虽然我有一些想法,但我不会添加大量功能,这些功能可能或可能不会最终被采纳(参见 路线图)。
Chop
chop
接收文件的路径以及你希望将文件分割成多少部分或部分的尺寸。为确保数据安全,chop
至少需要足够的磁盘空间来存储每个部分的尺寸。出现错误时,可能会得到一个部分完成的状态,但你的文件的所有字节都将完好无损。在创建每个部分后,原始文件将在创建下一部分之前被截断(缩短)。这样,chop
在不丢失任何数据的情况下,只需要最小的额外磁盘空间。这也意味着 chop
的内存使用相对较低,因为在给定时间只需要将一个部分(而不是整个文件)保留在内存中。这使得 chop
适用于分割非常大的多吉字节文件。
用法
USAGE:
chop [OPTIONS] <--size <part_size>|--parts <num_parts>> <file>
ARGS:
<file>
The file to split
OPTIONS:
--dry-run
Don't actually do anything, just tell me about it (implies verbose)
[aliases: dry]
-h, --help
Print help information
-n, --parts <num_parts>
The number of parts to chop the file into. Parts will all be the same size (except the
last one potentially)
-r, --retain
Don't delete the original file (requires more disk space)
[aliases: no-delete, preserve]
-s, --size <part_size>
The maximum size each part should be. Accepts units - e.g. 1GB, 20K, 128MiB. The last
part may be smaller than the others
-v, --verbose
Makes chop tell you what it's doing
-V, --version
Print version information
Stick
stick
接收切割文件的名称(不需要扩展名),尝试在同一目录内发现其他部分,并将它们重新组合。这是通过将一个部分读入内存,将其写入原始文件,删除该部分;然后对所有部分重复此过程。通过这种方式,stick
只需要与一个部分占用的额外磁盘空间一样多的空间。与 chop
一样,没有丢失数据的风险,因为成功写入之前不会删除任何内容。出现错误时,可能会得到一个部分完成的状态,但你的文件的所有字节都将完好无损。
用法
USAGE:
stick [OPTIONS] <file_name>
ARGS:
<file_name>
The file to reconstruct. You only need to specify one part, providing the extension is
optional
OPTIONS:
--dry-run
Don't actually do anything, just tell me about it (implies verbose)
[aliases: dry]
-h, --help
Print help information
-r, --retain
Don't delete the part files (requires more disk space)
[aliases: no-delete, preserve]
-v, --verbose
Makes stick tell you what it's doing
-V, --version
Print version information
路线图
达到稳定版本!(v1.0.0)
- ✅ 更好的测试
将pico_args
移动到此处以减小二进制文件大小- ✅ 添加详细命令行选项
- ✅ 添加模拟运行命令行选项
- ✅ 在运行时限制内存使用(当将单个部分放入内存是个糟糕主意时使用)
在 v1.0.0 之后
- 添加支持使用单个命令处理多个文件
- 以及“不安全”模式,该模式不需要额外的磁盘空间(通过在写入之前截断来实现)
- 从中途中断的状态恢复
依赖项
~2–10MB
~91K SLoC