我每天都必须使用以下方法将文件从计算机复制到 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
)