如何从 Linux 终端复制“tree”命令输出而不丢失文件夹/文件树的红色/蓝色/白色?

如何从 Linux 终端复制“tree”命令输出而不丢失文件夹/文件树的红色/蓝色/白色?

从终端复制“树”命令的输出时,无论我将其放在这里还是放在 Google Drive Doc 中,终端中显示的颜色都会丢失。

例子:

tree /var/log/apt -La 1
/var/log/apt
├── eipp.log.xz
├── history.log
├── history.log.1.gz
├── history.log.2.gz
├── term.log
├── term.log.1.gz
└── term.log.2.gz

虽然在终端,但有红色、蓝色和白色:

在此处输入图片描述

我的目标是将其粘贴到 Linux 上的 Google Drive Doc(即浏览器 Web 应用程序中)中,而不会丢失颜色,我猜这种丢失与 Google Drive Doc 无关,但在终端上,我在复制时似乎已经丢失了颜色。如何将其复制到 Google Docs 的问题在于如何将彩色 HTML 文本以在浏览器中显示的方式放入 Google Docs 中?在 Web 应用程序 Stack Exchange 上。

从终端复制到不在终端中的文件时如何保留颜色?

答案1

要创建可以在浏览器中显示的 HTML 输出, 命令可以有这样的语法:

tree -H \\localhost -T title -C -o test.html

使用的选项是:

-H 基础HREF

打开 HTML 输出,包括 HTTP 引用。对 ftp 站点有用。baseHREF 在使用 HTML 输出时提供基本 ftp 位置。也就是说,本地目录可能是“/local/ftp/pub”,但必须引用为“ftp://hostname.organization.domain/pub”(baseHREF 应为“ftp://hostname.organization.domain”)。提示:不要将 ANSI 行与此选项一起使用,并且不要在目录列表中提供多个目录。如果您希望通过 CCS 样式表使用颜色,请除了此选项之外还使用 -C 选项来强制颜色输出。

-T 标题

Sets the title and H1 header string in HTML output mode. 

-o 文件名

Send output to filename.

-C

如果未设置 LS_COLORS 环境变量,则始终使用内置颜色默认值来启用着色。用于对管道输出进行着色。

答案2

取决于具体的终端...

  • 一些终端仿真器支持将输出复制为 HTML(或 RTF) - 不仅仅是“包含 HTML 标签的文本”,而是实际的 HTML 类型的剪贴板内容 - 然后可以将其粘贴到大多数文字处理器中并被识别为格式化的文本。

    例如,在 GNOME 终端中,您可以按住 Shift 键并单击鼠标右键,然后选择“复制为 HTML”。我认为 Windows 终端也有一个类似的选项,但必须先通过其设置页面启用。

...取决于您将其粘贴到哪里。

  • 有些文本字段支持格式化内容,有些则不支持。例如,此网站使用纯文本输入小部件,因此即使如果您的剪贴板包含格式化的文本,网络浏览器在粘贴时始终请求“text/plain”类型。

    Google Docs 使用完全自定义的输入小部件,但您可以将“text/html”剪贴板数据粘贴到其中,它实际上会显示为格式化的文本。

相关内容