tar cpf获取进度目录中的最新文件

时间:2017-05-24 17:28:39

标签: bash progress-bar tar gnu-findutils

我正在寻找最简单的方法来tar目录中的最新文件。下面的命令找到了正确的文件,但我不知道如何从输出中对它进行tar:

find /home/user -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "

而且我必须输出进度。

2 个答案:

答案 0 :(得分:1)

使用GNU tar追加创建tar文件:

| xargs tar --checkpoint=1024 --checkpoint-action=ttyout='%u KB approximately written\r' -cf file.tar

<强>更新 带有进度条的GNU tar(带pv):

find /home/user -type f -printf '%T@ %s %p\n' | sort -n | tail -1 | while read t s p; do tar -cf - "$p" | pv -s "$s" > file.tar; done

输出(示例):

400MB 0:00:22 [74.2MB/s] [========================>          ] 77% ETA 0:00:15

答案 1 :(得分:0)

你可以管它:

find /home/user -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" " | tar -rf recent.tar

然后,创建压缩格式

gzip recent.tar

或旧版程序包

gzip -c recent.tar > recent.tgz

请注意,-r中的tar选项用于在包中附加文件