执行 tar 时的进度条

执行 tar 时的进度条

我每天都必须使用以下方法将文件从计算机复制到 SD 卡:

tar zxvf file.tar.gz -C /path_to_SD_card

Ubuntu 会立即执行该命令,但您可能知道,它会在后台继续复制文件。所以我需要知道复制过程何时结束。

有什么方法可以知道吗?像进度条这样的东西?

提前致谢。

答案1

这里没有进度条:延迟不是来自柏油进程,但内核 I/O 子系统尚未完全完成。

柏油读取该存档文件并将其写入 SD 卡上的文件系统,但该文件首先进入内核缓冲区。内核向柏油操作已完成,但它仍会继续刷新这些缓冲区到硬件。更糟糕的是,大多数现代 SD 卡/USB 棒也有一些硬件缓冲区,也需要刷新。

如果您想要编写脚本,您可以在命令sync之后发送一个命令tar;这将很好地阻止所有内容,直到所有缓冲区都被刷新(写入实际硬件):

tar -xvf myarchive.tgz -C /media/sdcard
sync

(请注意柏油多年来一直足够智能,可以在解压时检测压缩方法,因此您可以省略-x-t

相关内容