尺寸 Tape ARchiveZ
项目描述
starz
Sized Tape ARchiveZ
这个小命令行工具可以从(压缩的)tar文件或目录创建出大小合适的(压缩的)tar文件。
这个工具的“存在理由”是因为GitHub Packages将Docker容器的层大小限制为5GB。当需要安装大型tar包时(例如:PetaLinux、vivado等),这会引发问题。
Unix的split命令将不能完成,因为每个生成的“split”都不是单独可解压的,而且在进行cat操作后,我们又违反了5GB层的约束。
安装
conda
(conda-forge) me@mybox$ conda install starz
pip
me@mybox$ pip install starz
Collecting starz
Downloading starz-0.2.1.tar.gz (9.1 kB)
Collecting tqdm
Downloading tqdm-4.56.2-py2.py3-none-any.whl (72 kB)
|████████████████████████████████| 72 kB 569 kB/s
Collecting filetype
Downloading filetype-1.0.7-py2.py3-none-any.whl (15 kB)
Building wheels for collected packages: starz
Building wheel for starz (setup.py) ... done
Created wheel for starz: ...
Stored in directory: ...
Successfully built starz
Installing collected packages: tqdm, filetype, starz
Successfully installed filetype-1.0.7 starz-0.2.1 tqdm-4.56.2
me@mybox:~$
使用方法
me@mybox$ starz --help
usage: starz [-h] -s SIZE [-c] [-q] [-v] SOURCE [DESTINATION]
Pack a directory or re-pack a .tag(.gz) file in smaller .tar(.gz) chunks.
positional arguments:
SOURCE path to either a .tar(.gz) file or a directory
DESTINATION destination directory (default is current working
directory)
optional arguments:
-h, --help show this help message and exit
-s SIZE, --size SIZE maximum size (eg. 5GB or 3.14MB)
-c, --compress compress (gzip) the resulting .tar files into .tar.gz
-q, --quiet surpress the progress bar
-v, --version print the version number
me@mybox$
重新打包大型压缩tar文件为较小的非压缩tar文件
me@mybox$ starz -s 15MB brol.tar.gz
brol.00.tar: 18%|█████ | 2808448/15728640 [00:00<00:00, 30900007.82 Bytes/s]
brol.01.tar: 99%|███████████████████████▊| 15633123/15728640 [00:00<00:00, 223312287.21 Bytes/s]
brol.02.tar: 43%|███████████ | 6751263/15728640 [00:00<00:00, 151304825.55 Bytes/s]
me@mybox$
将大型的gzip-tar文件重新打包成较小的gzip-tar文件
me@mybox$ starz -c -s 15MB brol.tar.gz
brol.00.tar.gz: 18%|█████ | 2808448/15728640 [00:00<00:00, 30900007.82 Bytes/s]
brol.01.tar.gz: 99%|███████████████████████▊| 15633123/15728640 [00:00<00:00, 223312287.21 Bytes/s]
brol.02.tar.gz: 43%|███████████ | 6751263/15728640 [00:00<00:00, 151304825.55 Bytes/s]
me@mybox$
与上述相同,但不输出进度条
me@mybox$ starz -q -c -s 15MB brol.tar.gz
me@mybox$
将./brol
目录(递归)打包成每个压缩tar文件小于15MB的内容
me@mybox$ starz -c -s 15MB ./brol
brol.00.tar.gz: 18%|█████ | 2808448/15728640 [00:00<00:00, 30900007.82 Bytes/s]
brol.01.tar.gz: 99%|███████████████████████▊| 15633123/15728640 [00:00<00:00, 223312287.21 Bytes/s]
brol.02.tar.gz: 43%|███████████ | 6751263/15728640 [00:00<00:00, 151304825.55 Bytes/s]
me@mybox$
项目详情
关闭
starz-0.2.11.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 37ce59b7892a95ed0209d28c3e133b50d9cfab047d0ba0b5bfd625969b5d1350 |
|
MD5 | 001c5350a22089cda057a2ecb9dd88b1 |
|
BLAKE2b-256 | a8a4cdca7cd650427ee42b97fbc3cb0f26d844c6908818ae47c73089f4a41680 |