我希望 tar 命令在我处理大文件时以某种方式在输出中显示进度,并了解状态是什么。 但是我不能使用一些流行的工具,比如 pv,因为系统上只允许使用默认程序。
所以在 tar 文档中我找到了这个选项:
--checkpoint-action=ttyout='%T\r'
虽然这可以很好地输出终端中的进度,但我想将进度存储在文件中以防终端断开连接。但是 tar 在这种情况下,因为它使用 ttyout,似乎将其输出定向到 /dev/tty。
所以我的问题是,有没有办法将 /dev/tty 重定向到文件中?并且没有一些花哨的程序,只有标准 linux 发行版中包含的默认工具。
或者另一个选项是 echo
--checkpoint-action='echo=\a %T'
但是那没有 仅输出单行并覆盖它的选项。至少我无法使用这种语法将 echo 修改为 echo -ne。 所以也许你对这个方向有一些想法
这似乎应该有效:
tar -cvf archive.tar * | tee filename.log
或者也许你想要更多这样的东西?
tar --checkpoint --checkpoint-action='exec=echo $TAR_CHECKPOINT > filename.log ' --checkpoint-action='ttyout=%u\r' -cf archive.tar *