Linux带时间戳多线程压缩

带时间戳改成:

压缩

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

例如生成:

kronos-project-20260813_151956.tar.gz

指定输出目录(你之前的 /root/autodl-fs/

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

解压

文件名带时间戳时:

tar --use-compress-program="pigz -p $(nproc)" -xpf kronos-project-20260813_151956.tar.gz

如果想解压到指定目录:

tar --use-compress-program="pigz -p $(nproc)" -xpf kronos-project-20260813_151956.tar.gz -C /目标目录

这套就是你前面整理的最终版本:

  • 多线程 pigz
  • 自动时间戳
  • 不刷屏(无 v
  • 保留权限(解压 -p
  • 标准 .tar.gz 格式
  • Linux 文件名/属性不变

适合直接用于 AutoDL 这类大项目备份。

 

 

改进

tar –use-compress-program=”pigz -p $(nproc)” -cf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project 这种压缩命令行吗

这个命令可行,而且是标准正确写法。逐点确认:

tar --use-compress-program="pigz -p $(nproc)" -cf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project
部分 作用 正确性
--use-compress-program="pigz -p $(nproc)" 用 pigz 多核压缩,核数 = 全部 CPU ✅ $(nproc) 在 shell 里展开成核数
-cf 包.tar.gz 创建 tar 归档(压缩器已指定,后缀只是命名)
kronos-project 打包源目录(含顶层目录名)
$(date +%Y%m%d_%H%M%S) 自动生成时间戳名字

三点补充建议

  1. -p 保留权限(你要求”保留所有信息”):不加时普通用户打包,解压后权限可能被 umask 影响。
    tar --use-compress-program="pigz -p $(nproc)" -cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project
    
  2. 确认在 /home/zhiyuan/ 下运行(源是 ./kronos-project,不是它的父目录以外)。
  3. 36G 打包要一阵,建议挂 tmux:
    tmux new -s pack
    # 在里面跑打包命令
    

打包完成后建议的验证

# 1. 归档可读性 + 抽查关键内容
tar -tzf 包.tar.gz | grep -E "\.git/HEAD|requirements.txt|pilot_manifest" | head
# 2. 记录归档 sha256(传输后对比用)
sha256sum 包.tar.gz > 包.tar.gz.sha256

用不用 Workflow 编排?不需要,这是单机单命令操作。你要打包的话,告诉我,我直接上 tmux 跑;或者你在左侧自己跑都行。

tar –use-compress-program=”pigz -p $(nproc)” -cpf kronos-project-$(date +%Y%m%d_%H%M%S).tar.gz kronos-project 解压缩是什么命令

解压命令(对称写法,同样用 pigz 多核):

# 目标主机上
tar --use-compress-program="pigz -p $(nproc)" -xpf kronos-project-20260813_xxxxxx.tar.gz -C /home/zhiyuan/

对应关系:

打包 解压
-c (create) -x (extract)
-f 包.tar.gz
-p (保留权限) 同(两边都建议带)
--use-compress-program="pigz -p $(nproc)" 同(pigz 既能压也能解)
(无需) -C /home/zhiyuan/ 指定解压目标

两点注意

  1. 目标主机必须装了 pigz,否则报错。如果没装,退化成普通写法(tar 会自动检测 .tar.gz 并调 gzip):
    tar -xzf kronos-project-xxxx.tar.gz -C /home/zhiyuan/
    
  2. 打包时带了顶层目录 kronos-project/,所以解压后路径是 /home/zhiyuan/kronos-project/,正好就是项目目录。解压完验证:
    cd /home/zhiyuan/kronos-project/Kronos
    git log --oneline -3     # git 历史在
    git branch -a | wc -l    # 分支在
    .venv/bin/python --version

作者: 高志远

高志远,24岁,男生

发表评论

邮箱地址不会被公开。