linux打包命令进度条

fiy 其他 205

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,使用命令行打包文件时可以配合使用工具来显示进度条。以下是一些常用的命令及相应工具:

    1. 使用tar命令打包:
    “`
    tar -czvf package.tar.gz folder/
    “`
    这条命令将文件夹`folder/`打包成`package.tar.gz`文件,并通过`-v`参数显示文件打包的过程。但是默认情况下`tar`命令不会显示进度条。

    2. 使用pv命令显示进度条:
    “`
    tar -cf – folder/ | pv -cN folder | gzip > package.tar.gz
    “`
    在这条命令中,`pv`命令用于显示进度条。`-c`参数用于显示打包过程的进度百分比,`-N`参数用于设置进度条的名称。`pv`命令从标准输入读取数据,然后将其传递给`gzip`命令进行压缩。

    3. 使用progress命令显示进度条:
    “`
    tar -cf – folder/ | progress -mp > package.tar.gz
    “`
    `progress`是一个第三方工具,可以用来显示命令行任务的进度条。这里的`-mp`参数用于显示打包过程的进度百分比。同样,`progress`命令从标准输入读取数据,并将其传递给`gzip`命令进行压缩。

    无论是使用`pv`还是`progress`,都可以通过在终端运行`sudo apt-get install pv`或`sudo apt-get install progress`来安装相应的工具。

    以上是在Linux中使用命令行打包文件时显示进度条的方法,希望对你有帮助!

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在 Linux 系统中,可以使用以下命令打包文件并显示进度条:

    1. 使用 `tar` 命令:
    “`shell
    tar cf –| pv -s $(du -sb | awk ‘{print $1}’) | gzip >
    “`
    具体步骤如下:
    – `
    `:要打包的源文件夹的路径。
    – `tar cf –
    `:将源文件夹打包成 tar 归档文件,并输出到标准输出。
    – `pv -s $(du -sb
    | awk ‘{print $1}’)`:使用 `pv` 命令显示进度条。`-s` 参数用于指定总的文件大小,`$(du -sb | awk ‘{print $1}’)` 表示获取源文件夹的总大小。
    – `gzip > `:将标准输出压缩成 gzip 格式,并保存到指定的输出文件中。

    2. 使用 `rsync` 命令:
    “`shell
    rsync -a –info=progress2
    “`
    具体步骤如下:
    – ``:要打包的源文件夹的路径。
    – ``:打包后的文件夹的路径。
    – `rsync -a`:启用归档模式进行数据复制。使用 `-a` 参数可以保留文件的原始权限、所有者信息和时间戳。
    – `–info=progress2`:显示详细的传输进度,包括文件名、传输速度和剩余时间。

    3. 使用 `zip` 命令:
    “`shell
    zip -r | pv -l -s $(du -sb | awk ‘{print $1}’) > /dev/null
    “`
    具体步骤如下:
    – ``:压缩文件的名称。
    – `
    `:要打包的源文件夹的路径。
    – `zip -r
    `:将源文件夹打包成 zip 归档文件。
    – `pv -l -s $(du -sb
    | awk ‘{print $1}’) > /dev/null`:使用 `pv` 命令显示进度条,并将输出重定向到 `/dev/null`,这样就不会将进度条显示出来。

    4. 使用 `tar` 和 `pv` 命令结合使用:
    “`shell
    tar -cf – | pv -n -s $(du -sb | awk ‘{print $1}’) | (cd && tar -xvf -)
    “`
    具体步骤如下:
    – ``:要打包的源文件夹的路径。
    – ``:打包后的文件夹的路径。
    – `tar -cf –`:将源文件夹打包成 tar 归档文件,并输出到标准输出。
    – `pv -n -s $(du -sb
    | awk ‘{print $1}’)`:使用 `pv` 命令显示进度条。`-n` 参数用于禁止显示估计剩余时间。
    – `(cd && tar -xvf -)`:将标准输入的 tar 归档文件解压缩到指定的输出文件夹中。

    5. 使用 `7zip` 命令:
    “`shell
    7z a -bsp1 -bb2 “`
    具体步骤如下:
    – ``:压缩文件的名称。
    – `
    `:要打包的源文件夹的路径。
    – `7z a`:创建 7z 压缩文件。
    – `-bsp1`:显示进度信息的详细程度。值为 0 表示不显示进度信息,值为 1 表示显示进度信息。
    – `-bb2`:设置错误报告的详细程度。值为 0 表示不显示错误报告,值为 2 表示显示所有错误报告。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,常用的打包命令包括tar、gzip和compress。这些命令通常用于将多个文件或目录打包成一个单独的文件。虽然这些命令通常不会显示进度条,但是我们可以通过一些技巧来实现显示打包进度的效果。

    以下是一种实现方法的示例:

    1. 创建一个名为`progress_bar`的bash脚本,并在其中添加以下代码:

    “`bash
    #!/bin/bash

    # 计算文件或目录的大小
    total=$(du -bs “$1” | awk ‘{print $1}’)

    # 执行tar打包命令,并将进度条输出到stderr
    tar c “$1” | pv -s $total -n > “$2”
    “`

    2. 保存脚本并对其添加可执行权限:

    “`bash
    chmod +x progress_bar
    “`

    3. 使用以下命令运行脚本,并指定需要打包的文件或目录以及目标文件路径:

    “`bash
    ./progress_bar /path/to/source /path/to/destination.tar
    “`

    上述脚本使用了`tar`命令打包文件或目录,并利用`pv`命令创建一个进度条。`-s`参数用于设置进度条的大小,这里使用了`du`命令获取文件或目录的大小。`-n`参数用于禁止pv命令显示ETA(Estimated Time of Arrival,估计到达时间)和速度信息。

    请注意,在运行脚本之前,你需要安装`pv`命令。在大多数Linux发行版中,可以通过包管理器来安装,例如:

    Debian/Ubuntu:
    “`bash
    sudo apt-get install pv
    “`

    CentOS/RHEL:
    “`bash
    sudo yum install pv
    “`

    使用以上方法,我们可以实现在Linux系统中显示打包进度条的效果。注意,这种方法只是估算进度,并不是完全精确,因为文件大小的计算可能会有些误差。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部