关于命令的进度(条)、pv+tar实时解压缩测速

Linux解压进度监控:pv工具实战指南 在Linux系统运维中,大文件解压是常见的高频操作。传统tar命令虽然功能强大,但缺乏实时进度监控能力,导致操作过程如同'盲人摸象'。通过管道查看器pv工具,可以实时显示数据传输速率、完成进度和预估剩余时间等关键指标。这种监控机制对于数据库恢复、跨国数据传输验证等场景尤为重要。pv工具通过流量统计、速率计算和进度预测三大核心模块,配合tar命令的流式特性,实现了对解压过程的精确监控。本文重点演示如何通过pv与tar的组合命令,解决生产环境中解压进度不可见、速度不可控等痛点问题,同时分享块大小优化、内存缓存等 阅读详情


这里介绍一些场景的进度的应用工具,主要是针对那些不知道什么时候能够完全运行完毕的命令准备的,首先是进度条工具。

tqdm

python库最常用的进度条

from tqdm import tqdm
import time

# 示例:遍历自动驾驶数据集的帧数据
frame_ids = range(1000)  # 模拟1000帧数据

# 方式1:直接包装迭代器
for frame_id in tqdm(frame_ids, desc="Loading dataset frames"):
    # 模拟帧数据加载耗时
    time.sleep(0.005)

在这里插入图片描述

更加常用的是手动去更新进度条,此时我们需要先初始化进度条。

from tqdm import tqdm
import time

epochs = 10
total_steps = 100

pbar = tqdm(total=epochs * total_steps, desc="Training Model")

for epochs in range(epochs):
	for step in range(total_steps):
		time.sleep(0.01)
		par.update(1)

par.clear()

在这里插入图片描述
嵌套进度条,我们也按照提前定义进度条的形式来管理,假设一个任务是多层任务,需要处理5个数据片段,每个片段有200个条数据。

from tqdm import tqdm
import time

seq = 5
frame_ids = 200

bar_seq = tqdm(total=seq, desc="Processing Sequences")

for i in range(seq):
	bar_frame = tqdm(total=frame_ids, desc=f"Seq {i+1} Processing frames", leave=False) # 需要再for里面定义,并且加入leave=False

	for i in range(frame_ids):
		time.sleep(0.01)
		bar_frame.update(1)
	bar_frame.clear() # 需要额外清理内层进度条
	bar_seq.update(1)

在这里插入图片描述

rich

嵌套效果,从视觉效果来看算是两种风格。都是可以用的,用法上其实tqdm更简单点。

from rich.progress import Progress
import time

# 你的原始参数:5个序列,每个序列200帧
seq = 5
frame_ids = 200

# 1. 创建rich进度条对象,自动管理所有进度条
with Progress() as progress:
    # 2. 添加【外层进度条】:处理序列
    task_seq = progress.add_task("[cyan]Processing Sequences", total=seq)
    # 3. 遍历每个序列
    for seq_idx in range(seq):
        # 4. 添加【内层进度条】:处理当前序列的帧,每轮序列创建一个,自动刷新
        task_frame = progress.add_task(f"[green]Seq {seq_idx+1} | Processing Frames", total=frame_ids)
        
        # 遍历当前序列的所有帧
        for _ in range(frame_ids):
            time.sleep(0.005)  # 模拟帧处理耗时,和你之前一致
            progress.update(task_frame, advance=1)  # 内层帧进度+1
        
        # 内层帧进度完成后,自动清理该行,不刷屏
        progress.remove_task(task_frame)
        # 外层序列进度+1
        progress.update(task_seq, advance=1)

在这里插入图片描述

pv

这里着重介绍的是pv工具,首先是批量解压,常见的压缩包括tgz,tar.gz
先安装一下

sudo apt install pv

然后进行批量解压缩(主要是对于下载的数据集来说)

# tgz
for f in *.tgz; do   if [ -f "$f" ]; then     echo "正在解压:$f,实时统计中...";     pv "$f" | tar -zxf - -C ./;   fi; done

# tar.gz
for f in *.tar.gz; do   if [ -f "$f" ]; then     echo "正在解压:$f,实时统计中...";     pv "$f" | tar -zxf - -C ./;   fi; done

在这里插入图片描述
在这里插入图片描述
解压单个文件:

pv -ptebr openscene_metadata_trainval.tgz | tar -zxf - -C ./

除了解压之外,还有一些其他的用途如下
✅ 用pv的场景:Linux 命令行、文件压缩解压、拷贝传输、网络下载、硬盘测速(所有管道数据流场景)。
这里暂时就不展开说明了。

艺术字打印

之前使用modelscope下载模型的时候发现它的打印内容如下:
在这里插入图片描述
以为是通过什么库实现的,但是查了一下源码发现,就是直接定义的ASSIC码:
在这里插入图片描述

不过也找到了对应的python库pyfiglet,以下是一些常见的用法:

pip install pyfiglet termcolor rich
#pip install pyfiglet
import pyfiglet

# 默认字体
text = pyfiglet.figlet_format("ModelScope")
# print(text)

import pyfiglet

# # 尝试 'slant' 字体 (非常常用)
# print(pyfiglet.figlet_format("ModelScope", font='slant'))

# # 尝试 'banner3-D' 字体
# print(pyfiglet.figlet_format("ModelScope", font='banner3-D'))

# # 尝试 'doh' 字体
# print(pyfiglet.figlet_format("ModelScope", font='doh'))

import pyfiglet
# print(pyfiglet.FigletFont.getFonts())

import pyfiglet

# === 极小字体 (Height: 1) ===
# 适合放在注释或者紧凑的地方
print("--- Small ---")
print(pyfiglet.figlet_format("ModelScope", font='mini'))
print(pyfiglet.figlet_format("ModelScope", font='digital'))

# === 中等字体 (Height: 4-6, 标准大小) ===
# 'standard', 'slant', 'shadow' 是最常用的
print("--- Medium ---")
print(pyfiglet.figlet_format("ModelScope", font='slant'))

# === 巨大字体 (Height: >10) ===
# 这种字体非常大,需要终端全屏才能看清
print("--- Large ---")
print(pyfiglet.figlet_format("ModelScope", font='starwars'))
print(pyfiglet.figlet_format("ModelScope", font='doh')) # ModelScope 类似的风格
print(pyfiglet.figlet_format("ModelScope", font='block'))


import pyfiglet
from termcolor import colored, cprint

ascii_art = pyfiglet.figlet_format("ModelScope", font='slant')

# 1. 简单的红色
print(colored(ascii_art, 'red'))

# 2. 蓝色带加粗
print(colored(ascii_art, 'blue', attrs=['bold']))

# 3. 红底白字 (高亮)
print(colored(ascii_art, 'white', 'on_red'))


import pyfiglet
from rich import print
from rich.panel import Panel
from rich.text import Text

# 生成 ASCII 文本
art_str = pyfiglet.figlet_format("ModelScope", font='slant')
clean_art = art_str.rstrip() 
# 或者用 Text 包装更安全,防止字符解析错误
art_text = Text(clean_art, style="bold green")

# 1. 直接打印带颜色的 (支持 bold, italic, 颜色代码)
print(f"[bold magenta]{art_str}[/bold magenta]")

# 2. 放在一个边框里 (Panel)
print(Panel(f"[green]{art_str}[/green]", title="Welcome", subtitle="v1.0"))

print(Panel(art_str, title="Welcome", subtitle="v1.0", expand=False))
print(Panel(art_text, expand=False))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【信息科学与工程学】【产品体系】第三十三篇 DPU/smartinic芯片中的学科知识03 需求实现DMA 与流边界检测优化​分级超时状态机(短/中/长)+ 积压计数 + 批量触发DMA 控制器优化​描述符预取(深度 4)+ 中断合并(阈值 8)Fence 语义正确性验证​RTL 断言 + C 语言序列号检测 + 性能对比 + 硬件计数器所有代码均为可综合 Verilog,已在仿真器中通过基本功能测试。在 FPGA 原型上运行上述 RTL,配合 ChipScope 观察 fence 时序在 BlueField-3 上运行 DOCA DPA 测试程序,对比加/不加 fence 的结果。 阅读详情

相关推荐

带进度条的压缩/解压缩

android带进度条的压缩 带进度条的解压缩 android 压缩 解压缩

tar命令压缩解压缩带进度条的实现

tar命令压缩解压缩带进度条的实现 需要用到pv命令,默认是已经安装的,如果没有安装参考以下命令 yum install pv #centos apt install pv #ubuntu brew install pv #mac # 解压缩 pv ${filename} | tar -zxf - # 压缩 tar -cf - "${filename}" | pv -s $(($...

halazi100 4731

CAPL实战:从零构建HEX文件解析器,赋能UDS刷写

本文详细介绍了如何使用CAPL从零构建HEX文件解析器,以支持UDS刷写操作。通过解析HEX文件格式、设计状态机、优化数据结构与算法,实现高效准确的固件数据处理,并提供了与UDS刷写流程对接的工程化实践建议。

weixin_28726391的博客 442

tar显示压缩进度条

进度条 tar处理小文件时,非常快,不需要看进度。 但当文件比较大时,耗时较长,这时需要个进度条看一下,以评估剩余时间。 Linux下,可以使用pv来显示进度。 pv pv用来监视数据通过pipe的进度,能够显示耗时、完成率(进度条)、当前吞吐率、总传输字节等信息。 使用方式:在两个程序之间,以合适的参数插入pipeline。 pv将会把提供的文件拷贝到标准输出,如果没有指定文件,将拷贝标准输入,这时它的行为和cat一致。 如,查看使用nc传输一个文件的速度: pv file | nc -w 1 som

guotianqing的博客 1万+

泛微Ecology流程数据表结构解析:workflow_requestbase和workflow_currentoperator到底怎么关联查询?

本文深入解析泛微Ecology系统中workflow_requestbase和workflow_currentoperator表的结构与关联机制,提供SQL查询语句示例,帮助开发者高效查询流程数据。涵盖待办事项、已办事项、办结事项和流程监控等典型场景,并分享性能优化技巧和常见问题排查指南。

weixin_33738555的博客 803

单片机入门说明书:从本质到架构,一文看透MCU核心原理

其实你每天用的洗衣机、刷的智能门锁、开的汽车里,都藏着它的身影。相当于工厂里的“运输轨道”,CPU算出的结果通过总线送到RAM存储,ROM里的程序通过总线传给CPU执行,外设的信号通过总线交给CPU处理,整个过程每秒能重复上百万次,确保各模块协同高效。高端单片机(比如STM32F4系列)还会配备DMA(直接存储器访问)单元,相当于“专用传送带”——不需要CPU干预,就能直接让外设和RAM之间传输数据(比如让ADC采集的温度数据直接存进RAM),大大降低CPU负担,让CPU能专注处理更重要的任务。

IAMIF12的博客 1038

tar解压过程中在console显示简易进度条

本脚本用于在tar命令解压文件过程中,在console中显示简易的进度条,是根据解压出的文件总的大小和当前已经解压的文件大小来进行进度的显示,程序比较简易,普适性不是太强,很多变量可以以参数形式传递,这里不加优化,仅供作为笔记和参考而已 #!/bin/sh #显示进度的总格数 total_process=100 #当前进度格数 current_process=0 #百分比 percent=0

9527的博客 1万+

FortiOS路径遍历漏洞CVE-2022-41328实战复现:从环境搭建到漏洞利用全记录

本文深入解析FortiOS路径遍历漏洞CVE-2022-41328,从漏洞背景、影响范围到技术原理进行全面剖析。提供详细的漏洞复现环境搭建步骤和实战利用方法,并给出官方修复方案与临时缓解措施,帮助企业有效防御此类防火墙漏洞风险。

weixin_30485379的博客 521

[linux]-tar输出当前解压进度或解压中文件的进度

这条命令是一个复杂的 shell 命令,用于计算指定文件的打开百分比。对于镜像导入都不行。

爷来辣的博客 963

【FF-A】第二章 Introduction

Armv8.4 架构引入了在安全状态下的虚拟化扩展。Arm® SMMU v3.2 架构[1]为安全流添加了对第2阶段翻译的支持,以补充在 Armv8.4 处理器状态下的安全 EL2 翻译制度。这些架构特性使得在安全状态下,彼此不信任的软件组件能够相互隔离。关于在安全状态下引入虚拟化扩展以及固件框架目标的更多理念可在名为《在安全世界使用虚拟化进行隔离》的白皮书[3]中找到。软件组件只能访问物理地址空间和系统资源的区域,例如 GIC 中对其正确运行必要的中断。

baron-周贺贺-代码改变世界ctw 528

vLLM 显存泄漏与 OOM 深度排查:从日志到火焰图

系统性地排查 vLLM 运行中的显存泄漏和 OOM 问题,包括 CUDA 内存快照、PyTorch 内存分析器、火焰图工具。

kaixin110a的博客 185

linux xz gz tar 获取解压进度条

1. 想要获取进度,必须知道解压之后总文件的大小 2.下面来获取linux中常用的两种压缩方式,查看解压之后的文件大小  (1) tar.xz   examples.tar.xz $xz --robot -l examples.tar.xz name examples.tar.xz file 1 157 646599460 1...

u012385733的专栏 1万+

如何正确理解和获取S参数

差分四端口的S参数是由双端口S参数逐步演化而来,因此,在数学中,其各分量均可以从单端S参数推导而来,在实际的仿真和测试中,软件和测量设备也是通过获取单端S参数矩阵再进行运算得到混合S参数矩阵的,并非直接获取。

一只豌豆象的博客 5150

Linux下使用pv工具实现tar压缩解压进度监控与测速

在Linux系统管理中,文件压缩与解压是基础而重要的操作。tar作为经典的归档工具,配合gzip等压缩算法能高效处理文件打包,但缺乏进度监控功能。pv(Pipe Viewer)工具通过监控管道数据流,实时显示传输进度、速率和时间预估,完美弥补了这一缺陷。这种组合技术特别适用于系统运维、大数据处理等需要精确掌握IO性能的场景,既能直观观察大文件处理的实时进度,又能准确测量实际传输速率,为性能优化提供数据支撑。通过pv+tar的方案,运维人员可以更高效地完成数据库备份、日志分析等典型任务。

weixin_33507732的博客 142

Google antigravity 不支持你所在地区?手把手教你把账号改成支持地区

Google antigravity功能火爆,但国内老账号根本用不了🤬本文分享几种有效的账号国家地区切换方法,最快几分钟就能让antigravity直接亮起🔥

XiaoqiangClub的博客 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux实时监控压缩解压进度:pv与tar实战指南

在Linux系统管理中,数据压缩与解压是基础且高频的操作,尤其涉及大文件处理时,实时监控进度对运维效率至关重要。管道(pipe)作为Linux进程间通信的核心机制,其数据传输过程通常不可见,而pv(Pipe Viewer)工具通过拦截管道数据流,实现了传输速率、进度百分比和剩余时间的可视化监控。这种实时反馈不仅能帮助管理员识别I/O瓶颈、内存不足等性能问题,还能优化压缩级别选择(如gzip与pigz的多线程压缩对比)。结合tar命令的--checkpoint参数或--exclude等高级用法,可构建完整的备

weixin_33462167的博客 247

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

pv+tar组合:实时查看解压缩进度与测速技巧

在Linux生态中,管道'|'是连接命令的常用机制,但管道本身如同黑盒,无法直观呈现数据流通的进度与速率。此时,pv(Pipe Viewer)就扮演了'流量计'的角色,它插入任意管道之间,实时统计并显示已传输字节、瞬时速度和预计剩余时间。将pv与tar结合,即可对压缩与解压缩操作进行实时进度可视化和测速,帮助运维、开发人员准确判断瓶颈在CPU解压能力还是磁盘写入能力。尤其适合大文件备份、日志迁移、数据恢复等场景。通过简单的管道组合和少量参数,如pv -pte,就能将枯燥的等待转化为清晰可读的速率与ETA信息

weixin_31236101的博客 208

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pv+tar:Linux命令行进度条与实时解压测速实战

在Linux系统运维和数据备份场景中,命令行工具的执行过程往往是黑盒状态。传统命令如tar、gzip等默认不显示进度,当处理数十GB数据时,用户无法判断任务是否卡死。pv(Pipe Viewer)作为管道中间层,通过统计流经的数据量、传输速率和剩余时间,为终端命令提供可见的进度反馈。将pv与tar结合,可以实现打包压缩全程监控,并准确测量解压速度,从而定位磁盘、CPU或网络瓶颈。本文面向运维人员、备份迁移场景,介绍pv的常用参数、管道组合方式,以及不同压缩格式(gzip、xz、zstd)的实测对比,帮助读者

weixin_30582943的博客 151

linux解压进度的命令,带进度条的tar 压缩命令

写了一个程序,用来压缩文件,程序内部调用的其实就是tar czf *.tgz [file2|director2] ....上程序#检查输入参数check_argv (){if [ $# -lt 2 ]; thenecho "Error: argvment error : ./compress.sh file.name {file2|directory2} ..."exit 255fifor I...

weixin_36372014的博客 1719

tar 命令显示进度条

实现该功能需要安装 pv,然后把需要处理的数据通过管道传给 pv,最后再进行操作。 传给 pv 的目的是为了知道已经处理的数据量大小,同时需要通过 -s 指定总共需要处理的数据量大小。 pv 的安装一般的软件管理工具都有提供: 如 centos 下 yum install pv ubuntu : apt-get install pv mac:brew install pv pv ...

weixin_33711641的博客 4571

【转】linux解压tar命令

来源:http://www.21andy.com/blog/20060820/389.html linux解压 tar命令 tar命令 tar [-cxtzjvfpPN] 文件与目录 ....  参数:  -c :建立一个压缩文件的参数指令(create 的意思);  -x :解开一个压缩文件的参数指令!  -t :查看 tarfile 里面的文件!  特别注意,在参数

xiaocaichonga的专栏 324

Linux:tar 命令显示进度条

实现该功能需要安装 pv,然后把需要处理的数据通过管道传给 pv,最后再进行操作。 传给 pv 的目的是为了知道已经处理的数据量大小,同时需要通过 -s 指定总共需要处理的数据量大小。 pv 的安装一般的软件管理工具都有提供: centos 下 yum install pv ubuntu : apt-get install pv mac:brew install pv pv 的详细用法可参考:https://linux.die.net/man/1/pv 压缩 mac: tar -cf - questi

OceanStar的博客 5796

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 214
上一篇: LLaMA-Factory 入门(二): 深入技术解析
下一篇: LQR与MPC.入门知识与实验
白云千载尽
博客等级 码龄5年 9168粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云千载尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值