«отобразить» текстовый файл с возвратом каретки (^ M) и сохранить вывод в файл

Да, это сделано намеренно.

На странице руководства для systemctl disable указано:

Отключает один или несколько модулей. Это удаляет все символические ссылки на указанные файлы модуля из каталога конфигурации модуля и, следовательно, отменяет изменения, сделанные с помощью enable. Однако обратите внимание, что при этом удаляются все символические ссылки на файлы модуля (т.е.в том числе добавленные вручную), а не только те, которые фактически созданы с помощью enable.

Вот ссылка: https://www.freedesktop.org/software/systemd/man/systemctl.html #

Он не объясняет почему, но я могу предположить, что он не может отличить ссылки, созданные с помощью systemctl enable , и созданные вручную, поскольку он ищет ссылки, указывающие на файл модуля.

Вы должны использовать опцию ссылка в systemctl при создании символической ссылки на исходный файл вне пути поиска systemd. Также из той же справочной страницы.

link FILENAME ...

Свяжите файл объекта, которого нет в путях поиска файлов объекта, с путем поиска файла объекта. Для этого требуется абсолютный путь к файлу модуля. Эффект от этого можно отменить с помощью disable. Результатом этой команды является то, что файл объекта доступен для запуска и других команд, хотя он не устанавливается непосредственно в путь поиска объекта.

2
23.05.2017, 15:39
1 ответ

Для такого рода приложений я запускаю программу с помощью script (чтобы не менять ее поведение при перенаправлении вывода в файл), а затем фильтрую полученный typescript файл с помощью сценария sed. Смотрите, например, мой ответ в Можно ли программно "записать" управляющие коды ANSI в файл с помощью unix-утилит?, обсуждение script2log.

Есть и другие примеры, например, упомянутые в комментариях. Однако упомянутые не рассматривают данный конкретный случай (когда возврат каретки используется для зачеркивания текста), а только удаления управляющих символов.

0
27.01.2020, 22:51

Теги

Похожие вопросы