Linux带时间戳多线程压缩

安装

root@autodl-container-522548a71c-16e02917:~/autodl-tmp# sudo apt install pigz Reading package lists… Done Building dependency tree… Done Reading state information… Done E: Unable to locate package pigz root@autodl-container-522548a71c-16e02917:~/autodl-tmp#

E: Unable to locate package pigz 说明 apt 软件源里没有找到 pigz。在 AutoDL 容器里比较常见,原因通常是:

  1. 软件源索引没更新;
  2. 容器裁剪过,源配置不完整;
  3. 当前镜像不是完整 Ubuntu/Debian 源。

先按下面顺序排查。


1. 更新软件源索引

apt update

然后:

apt install pigz

使用

tar –use-compress-program=”pigz -p $(nproc)” -cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project 能保留所有信息吗

你的命令:

tar --use-compress-program="pigz -p $(nproc)" -cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project

不能完整保留所有信息。 原因是少了 -p,而且你的压缩方式参数也有一点问题。


你的命令逐项解释

tar ... -cpf xxx.tar.gz kronos-project

其中:

参数 作用 是否保留
c 创建归档
p 保留权限 ❌(这里不是那个意思)
f 指定文件名

注意:

这里的:

-cpf

里面的 p 不是 preserve 权限

因为 GNU tar 的参数解析中,-cpf 等价于:

-c -p -f

但如果创建归档时,-p 的意义主要是保留权限不受 umask 影响,在创建归档时作用有限。

真正关键的是:解压时使用:

-xpf

推荐备份命令

建议:

tar --use-compress-program="pigz -p $(nproc)" \
-cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz \
kronos-project

其实已经可以。

不过更明确推荐:

tar --numeric-owner \
--use-compress-program="pigz -p $(nproc)" \
-cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz \
kronos-project

--numeric-owner 很重要

它保存:

UID/GID 数字

例如:

原:

zhiyuan uid=1000 gid=1000

保存:

1000/1000

恢复到另一台机器:

tar -xpf xxx.tar.gz

不会因为用户名不存在导致变化。

对于服务器迁移、AutoDL 环境迁移,推荐加。


符号链接是否保留?

默认:

✅ 保留。

例如:

.venv/bin/python
 -> /root/.local/share/uv/python/...

tar 保存的是:

python 是一个软链接
目标路径是什么

不会展开。

不要加:

-h

否则会展开链接。


最完整推荐版本

备份:

tar --numeric-owner \
--use-compress-program="pigz -p $(nproc)" \
-cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz \
kronos-project

恢复:

tar --use-compress-program="pigz -p $(nproc)" \
-xpf kronos-project-xxxxxx.tar.gz \
-C /home/zhiyuan/

这样可以保留:

✅ 文件内容
✅ 文件名
✅ 目录结构
✅ 权限
✅ 时间戳
✅ 用户/组 UID/GID
✅ 符号链接
✅ 硬链接

这套命令适合你现在这种 Kronos 项目迁移/备份 场景。

不要换行显示

单行版本:

tar --numeric-owner --use-compress-program="pigz -p $(nproc)" -cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project

恢复:

tar --use-compress-program="pigz -p $(nproc)" -xpf kronos-project-xxxxxx.tar.gz -C /home/zhiyuan/

这两条即可。

作者: 高志远

高志远,24岁,男生

发表评论

邮箱地址不会被公开。