2 个版本 (1 个稳定版)

1.0.0 2024 年 1 月 28 日
0.2.0 2024 年 1 月 10 日

#412 in 文件系统

Zlib 许可证

53KB
1K SLoC

巴克斯普

巴克斯普是一个使用 XZ 压缩创建备份(或任何存档)的程序。
备份可以由简单的 TOML 配置。

安装 & 使用

cargo安装 baxzup

当巴克斯普首次运行时,它将生成默认配置,并在继续之前等待输入(以便首先编辑配置)。
每次运行巴克斯普,除非配置丢失,否则它将自动开始创建备份。
可以使用 --config-path 标志更改配置文件的路径。要完全跳过从文件读取配置并仅使用默认配置,请使用 --default-config

配置

字段 类型 描述 默认
backup.paths [String, ...] 要添加到备份的目录/文件的路径。 Windows:
['C:\']

Linux:
["/etc", "/home", "/root", "/var"]

MacOS:
["/Users", "/Applications", "/Library"]
backup.exclude [String, ...] 要排除的模式的列表。
如果程序当前正在检查的路径包含任何模式,它将跳过它。
模式可以是正则表达式,通过输入 ?/pattern/flags 来指定。
Windows:
["?/cache/i", 'C:\Program Files', 'C:\Program Files(x86)', 'C:\Windows']

LinuxMacOS
["?/cache/i"]
backup.exclude_tags Table<String> 要排除的标签的列表。
如果目录包含任何与标签(表的关键)名称相同的文件,它将被跳过。
标签模式(键的值)定义了如何跳过目录

keep-tag:
保留目录和标签文件,但跳过目录中的其他所有文件。

keep-dir:
保留目录,但将其留空。

keep-none:
不保留任何内容。
{ "CACHEDIR.TAG" = "keep-tag" }
backup.follow_symlinks bool 程序将存档符号链接所链接的任何内容,而不是符号链接本身。
以下符号链接可能会导致程序陷入循环,请谨慎使用。
false
backup.ignore_unreadable_files bool 当无法读取文件时,程序将立即跳过它,而不是询问用户。 false
backup.force_overwrite bool 如果已存在与备份文件同名的文件,则程序将自动覆盖它,而不是询问用户。 false
backup.name String 备份文件的名字(或路径),支持strftime-like格式化,并包含一些额外的指定符。

**%!hostname**
系统主机名,如果无法获取则为“unknown”。

**%!systemname**
系统名,如果无法获取则为“unknown”。

**%!systemid**
系统的发行版ID。

**%!username**
用户名,如果无法获取则为“unknown”。

**%!groupname**
用户的组名,如果无法获取则为“unknown”(Windows上无法获取)。
%!hostname(%F).tar.xz
progress_bars.enable bool 程序将显示两个进度条,显示已存档和已压缩的量。
进度条并不准确,只是为了大致了解已完成的工作量和剩余工作量。
true
progress_bars.spinner_chars String 用于旋转动画的字符,最后一个字符用于进度条完成时使用。
必须包含至少2个字符。
支持Unicode:
⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏

仅ASCII:
|/-\
progress_bars.progress_chars String 用于进度条的字符,第一个字符用于进度条的填充部分,最后一个字符用于进度条的空白部分。
如果有其他字符,将用于进度条中即将填充的字符。
必须包含至少2个字符。
█░
progress_bars.tar_bar_color String 用于“存档”进度条的颜色,字符串必须包含颜色的名称或其编号。
可以使用 / 将颜色分为填充部分的颜色和空白部分的颜色。
如果只提供一个颜色,则将用于两部分。
yellow
progress_bars.xz_bar_color String 用于“压缩”进度条的颜色,字符串必须包含颜色的名称或其编号。
可以使用 / 将颜色分为填充部分的颜色和空白部分的颜色。
如果只提供一个颜色,则将用于两部分。
magenta
xz.level u32 (0-9) XZ的压缩级别,较低的级别速度更快,使用的内存更少,但压缩效果较差。 8
xz.threads u32 XZ使用的线程数。 CPU的核数。
xz.block_size u64 每个未压缩数据块的尺寸(以字节为单位),每个线程将分配大约3倍于数据块大小的字节数。
将此设置为0以让XZ选择数据块大小。
0
auto_update_config bool 如果已定义且设置为 true,则如果检测到任何过时的字段,配置将自动更新。 None.

当配置文件不存在时,将自动创建一个新的配置文件,并使用默认值。
此外,从命令行界面,可以使用标志修改大多数配置。

依赖项

~10–40MB
~630K SLoC