Сжатие файлов в bash с использованием экрана и настройки уровня сжатия

Я хочу сжать большую папку, используя 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, размер которого увеличивается с течением времени, но на экране не отображается вывод, несмотря на флаг v для tar, который я хотел бы получить.

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

Как мне также показать вывод tar?

1 ответ

Решение

Если, на самом деле, проблема с исходной командой - это назначение оболочки (и вполне вероятно, что это особенность оболочки и screen не ожидая, что в этот момент возможное решение будет установить переменную в среде screen сам по себе и пусть он "кровоточит" в окружающую среду tar команда.

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

Если это по какой-то причине не работает (или не может быть использовано, поскольку его нужно ограничить только этой конкретной командой (а не другими порожденными экраном оболочками, которые могут открываться), то запускаемый сценарий оболочки, возможно, является единственный ответ.

Другие вопросы по тегам