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

tar cpf for the most recent file in directory with progress

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

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

而且我必须输出进度。

要使用 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

你可以管它:

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

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