1. 程式人生 > >tar解壓過程中在console顯示簡易進度條

tar解壓過程中在console顯示簡易進度條

本指令碼用於在tar命令解壓檔案過程中,在console中顯示簡易的進度條,是根據解壓出的檔案總的大小和當前已經解壓的檔案大小來進行進度的顯示,程式比較簡易,普適性不是太強,很多變數可以以引數形式傳遞,這裡不加優化,僅供作為筆記和參考而已

#!/bin/sh

#顯示進度的總格數
total_process=100
#當前進度格數
current_process=0
#百分比
percent=0
#檔案大小
total_size=455000
#當前檔案大小
current_size=0
#用於記錄上一次的進度
old_process=0



print_progress ()
{
    incomplete_process=$((${total_process}-${current_process}))
    if [ ${incomplete_process} -lt 0 ]; then
        incomplete_process=0
        current_process=${total_process}
        percent=100
    fi
    #輸出已升級部分,用>表示
    printf "\rProgress:[%.${current_process}d" | tr '0' '>'
    #輸出未升級部分,用' '表示
    printf "%.${incomplete_process}d]" | tr '0' ' '
    #輸出當前百分比
    printf "${percent}%%"
}

display ()
{
    while true
    do
        #統計當前已解壓檔案大小
        current_size=$(du -s target | awk '{printf $1}')
        percent=$((${current_size}/(${total_size}/100)))
#       echo ${percent}
        current_process=$((${percent}\*${total_process}/100))
#       echo ${current_process}
        if [ ${current_process} -eq 0 ]; then
            print_progress
        elif [ ${current_process} -ne ${old_process} ]; then
            print_progress
            old_progress=${current_process}
        fi
        #以tar程序結束來結束本程序
        ps -ef | grep "tar jxvf" | grep -v "grep" > /dev/null
        if [ $? -ne 0 ]; then
            echo "Update Over"
            break
        fi
    done
}

tar jxvf file.tar.gz -C ./target > /dev/null &
display


相關推薦

tar過程console顯示簡易進度

本指令碼用於在tar命令解壓檔案過程中,在console中顯示簡易的進度條,是根據解壓出的檔案總的大小和當前已經解壓的檔案大小來進行進度的顯示,程式比較簡易,普適性不是太強,很多變數可以以引數形式傳遞

tar 歸檔找不到錯誤

開始我也以為是包的問題,換了幾個包還是不行,原來是手冊上漏掉了一個-C引數。 tar -jxvf qtopia-1.7.tp.tar.bz2 -C /utuLinux2.6.24/ 一定要加上那個-C   引數。

Linux tar包出現的問題解決

gzip: stdin: not in gzip formattar: Child returned status 1tar: Error exit delayed from previous errorsYou used "tar -zxvf" for the second command. the 'z'

tar報錯

tar 在解壓jdk時,報錯如下:[[email protected]/* */_22_86_centos tools]# tar xf jdk-8u144-linux-x64.tar.gz gzip: stdin: not in gzip formattar: Child returned

升級Linux tar &&解決某用tar失敗的tar

更新 文件名 發現 目錄 ftp 估計 決定 bin div 今天解壓個文件,出來很多這樣的: /bin/tar: Ignoring unknown extended header keyword `SCHILY.dev‘/bin/tar: Ignoring unknown

tar

輸出 處理 apach href ros lan family ofo not tar打包和解壓到指定目錄的方法 tar zxvf ab.tar.gz -C cc tar xzf ab.tar.gz 直接解壓到當前目錄 tar -zxv -f ab.tar.gz 直接

轉載:linux tar 命令總結

linu 追加 tar.gz 備忘 標準輸出 需要 中一 意思 檔案 把常用的tar解壓命令總結下,當作備忘: tar -c: 建立壓縮檔案 -x:解壓 -t:查看內容 -r:向壓縮歸檔文件末尾追加文件 -u:更新原壓縮包中的文件 這五個是獨立的命令,壓縮解壓都要用到其中

linux tar 出錯

exit span erro pos child 報錯 style oot eva 今天用tar -xzvf php-7.2.3.tar.gz 解壓php的tar包時報錯 [root@VM_72_37_centos ~]# tar -xzvf php-7.2.3.tar.

把常用的tar命令總結下

tar -c: 建立壓縮檔案 -x:解壓 -t:檢視內容 -r:向壓縮歸檔檔案末尾追加檔案 -u:更新原壓縮包中的檔案 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的引數是根據需要在壓縮或解壓檔案時可選的。 -z

tar 報錯

日常運維中,在安裝某些軟體包時需要先進行解壓,但是解壓時出現了報錯,錯誤內容如下: [[email protected] ~]# tar -zxvf php-5.6.38.tar.gz gzip: stdin: not in gzip formattar: Child returne

tar 到指定目錄、去除前導目錄

去除目錄結構加上 --strip-components N 解壓到指定目錄,可以加引數-C 目標目錄 tar -xvf eg.tar -C /data/dst   一起使用 sudo tar xjvf targetNFS_multichannel.lsh.test --

Linux使用tar.tar.bz2檔案:報錯(原因)tar: Child returned status 2 tar: Error is not recoverable: exiting now

tar -jxvf xxxx.tar.bz2 如下報錯: tar (child): bzip2:無法 exec: 沒有那個檔案或目錄 tar (child): Error is not recoverable: exiting now tar: Child returned stat

linux用tar檔案Cannot open: No such file or directory

在阿里雲上搭建大資料平臺,解壓 zookeeper-3.4.10.tar.gz時報錯如下: tar: zookeeper-3.4.10: Cannot mkdir: Permission denied tar: zookeeper-3.4.10/ivysettings.xml: Can

PHP ZIP 的檔案到指定目錄 (不含 ZIP 的資料夾路徑)

<?php header('Content-type:text/html;charset=utf-8'); $filename = './xiyanhetong20181213.zip'; // 目標原始檔 $dir = 'test_zip'; // 存放目錄

Linux使用tar.tar.bz2檔案:報錯(原因)

tar -jxvf xxxx.tar.bz2 如下報錯: tar (child): bzip2:無法 exec: 沒有那個檔案或目錄 tar (child): Error is not recoverable: exiting now tar: Child r

linux tar 報錯解決方法

在解壓tar.gz檔案的時候報錯 1 2 3 4 5 [[email protected] Downloads]$ tar -zxvf clion-141.351.4.tar.gz gzip: stdin: not in gz

tar 部分目錄

由於線上一個同事不小心勿操作,覆蓋了之前cms的html 頁面,所以需要恢復, 奈何備份是和圖片一塊的,是一個45G的大包而且是放在儲存上的,全部解壓至少需要1個小時,所以希望只解壓該目錄的cmsMenu 目錄。 使用一下命令檢視壓縮包裡面的內容 tar ztvf xx.t

linux下 zip tar gz bz2等各種檔案命令

大致總結了一下linux下各種格式的壓縮包的壓縮、解壓方法。但是部分方法我沒有用到,也就不全,希望大家幫我補充,我將隨時修改完善,謝謝!      .tar   解包:tar xvf FileName.tar   打包:tar cvf FileName.tar DirNam

tarUnexpected EOF in archive錯誤

使用tar解壓一個從網路下載的文件: tar xvf origin_data.tar 出現如下報錯資訊: tar: Unexpected EOF in archive tar: rmtlseek not stopped at a record boundary tar: Err

tar ,重新命名

1、tar: Removing leading `/’ from member names   問題: 首先應該明確:*nix系統中,使用tar對檔案打包時,一般不建議使用絕對路徑。通常是在兩臺環境相似的機器上進行同步複製的時候,才有需要使用絕對路徑進行打包。使用絕對路徑打