首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

tar 显示进度

tar 是一个用于文件归档的工具,在 Unix 和类 Unix 系统(如 Linux)中广泛使用。当你需要将多个文件和目录打包成一个单独的文件时,通常会用到 tar 命令。然而,标准的 tar 命令在执行时并不会显示进度条,这可能会让用户在执行大型归档操作时感到不便。

基础概念

  • 归档:将多个文件和目录组合成一个单一的文件,以便于备份、传输或存储。
  • 进度显示:在执行长时间运行的任务时,向用户提供当前完成的百分比或状态更新。

相关优势

显示进度条的优势在于:

  1. 用户体验:用户可以直观地看到任务的完成情况。
  2. 监控任务:便于用户监控长时间运行的任务,以便及时发现潜在问题。

类型与应用场景

  • 类型:进度显示可以是简单的百分比数字,也可以是图形化的进度条。
  • 应用场景:适用于任何需要长时间处理的文件操作,如备份、数据迁移、软件安装等。

遇到的问题及原因

如果你在使用 tar 命令时发现没有进度显示,可能是因为:

  1. 标准 tar 不支持:原始的 tar 命令没有内置进度条功能。
  2. 缺少额外工具:可能需要安装额外的工具或脚本来实现进度显示。

解决方法

方法一:使用 pv 工具

pv(Pipe Viewer)是一个可以监控数据通过管道传输进度的工具。你可以使用 pv 来监控 tar 命令的输出。

代码语言:txt
复制
# 安装 pv(如果尚未安装)
sudo apt-get install pv  # Debian/Ubuntu
sudo yum install pv      # CentOS/RHEL

# 使用 pv 监控 tar 命令
tar cvpzf backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media / | pv > /dev/null

方法二:使用 bar 工具

bar 是另一个可以显示进度条的工具,可以与 tar 结合使用。

代码语言:txt
复制
# 安装 bar(如果尚未安装)
sudo apt-get install bar  # Debian/Ubuntu
sudo yum install bar      # CentOS/RHEL

# 使用 bar 监控 tar 命令
tar cvpzf backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media / | bar -s 10 > /dev/null

方法三:自定义脚本

如果你熟悉脚本编写,也可以自己编写一个脚本来实现进度显示。

代码语言:txt
复制
#!/bin/bash

# 获取文件总数
total_files=$(find . -type f | wc -l)

# 初始化计数器
count=0

# 创建 tar 归档并显示进度
find . -type f -print0 | while IFS= read -r -d '' file; do
    tar --create --file=backup.tar.gz --directory="$(dirname "$file")" "$(basename "$file")"
    ((count++))
    echo "Progress: $count/$total_files files archived"
done

总结

虽然标准的 tar 命令不支持进度显示,但通过结合使用 pvbar 或自定义脚本,你可以轻松地为 tar 操作添加进度条功能,从而提高用户体验和任务监控效率。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 显示进度下载图片

    上篇文章讲了如何实现模拟的进度条,这篇文章就来实践一下。通过下载一张图片作为案例,当然换成其它软件的链接也可以,把保存的文件后缀名改成相应的内容就可以。 ? ?...加上进度条 接下来就可以把之前的进度条内容搬过来了。因为有实际内容了,不需要再去用循环模拟了。a表示已经下载的,b表示剩余未下载的,c表示下载的和总的比例,最后格式化输出就可以了 ?...丰富进度条 上面的进度条已经实现最核心的功能了,下载速度,大小,所剩时间可以自己去计算,放到显示里面就可以了。 ? ? 加上剩余时间。 ?...总结 进度条原理很简单,分别是下载内容,未下载内容,总内容大小的关系,如果还要算速度和时间,那就再就加入一个计时功能,最后可以尝试将其封装成也给模块函数,以后只要传入参数就可以重复使用了。

    3.8K20

    【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度条播放 )

    FFMPEG 播放进度控制 II . FFMPEG 播放视频 ( 效果展示 ) III . FFMPEG 获取视频时长 IV . FFMPEG 视频播放进度获取 V ....FFMPEG 设置播放进度 I ....FFMPEG 播放进度控制 ---- FFMPEG 播放进度控制 : 为 FFMPEG 播放视频添加拖动进度条功能 , 主要包含以下两个功能 ; 第一 , 进度更新 , 视频播放过程中 , 播放的同时更新当前的播放进度..., 界面中的进度条实时显示当前的播放进度 ; 第二 , 进度控制 , 拖动进度条 , 控制视频播放进度跳转 ; 进度控制前提 : 上述功能主要用于 视频播放 , 只有完整的视频才能添加进度控制功能 ,...FFMPEG 设置播放进度 : 传入一个播放进度后 , 首先将播放的进度转成微秒值 , 然后调用 av_seek_frame 方法 , 传入一系列参数 , 即可完成 FFMPEG 播放本地视频文件的进度跳转

    2.3K20
    领券