使用屏幕和设置压缩级别压缩 bash 中的文件

compress files in bash using screen and setting compression level

我想使用 tar、xz 压缩一个大文件夹并使用 screen 获取详细输出。

没有屏幕,命令为:

$ XZ_OPT=-9 tar cJfv mydirectory.tar.xz mydirectory

现在有了屏幕,我得到的只是一个 [屏幕正在终止],我假设是因为 XZ_OPT 环境变量

$ screen -L XZ_OPT=-9 tar cJfv mydirectory.tar.xz mydirectory

我在下面尝试了以下操作,它生成了一个 tar.xz 文件,该文件的大小随着时间的推移而增加,但屏幕没有显示任何输出,尽管 tar 有 v 标志,我想要

$ screen -L $(XZ_OPT=-9 tar cJfv mydirectory.tar.xz mydirectory)

如何同时显示 tar 的输出?

如果,事实上,原始命令的问题是 shell 赋值(很可能是因为这是一个 shell 特性,而 screen 并不期望那时一个可能的解决方案是在 screen 本身的环境中设置变量,并让它 "bleed into" tar 命令的环境。

XZ_OPT=-9 screen -L tar cJfv mydirectory.tar.xz mydirectory

如果由于某种原因它不起作用(或者不能使用,因为它需要仅限于该特定命令(而不是其他可能打开的屏幕生成的 shells)那么获得 运行 的 shell 脚本可能是唯一的答案。