User Tools

Site Tools


linux:pv

Pipe Viewer

Mit pv kann der Fortschritt von Daten durch eine Pipe angezeigt werden. Ein Beispiel kann die Verwendung von dd sein:

dd if=/dev/urandom bs=1M | pv -s 1g | dd of=/tmp/test.img

Anwendungsbeispiel

Eine Beispielanwendung kann eine Funktion in der .bashrc sein, mit der ein Verzeichnis zu einem zip-Archiv komprimiert wird und dabei der Fortschritt mittels pv angezeigt wird:

function zip_directory(){
    if [ ! -d "$1" ]; then
        echo The directory $1 does not exist!
        return 1
    fi
 
    #remove trailing slash
    d=${1%/}
 
    (tar cf - "$d" \
        | pv -n -s $(du -sb "$d" | awk '{print $1}') \
        | gzip -9 > "$d.tgz") 2>&1 \
        | dialog --gauge 'Progress' 7 70
    echo ''
    echo Created archive \'$d.tgz\'
}
linux/pv.txt · Last modified: by sascha