从终端复制“树”命令的输出时,无论我将其放在这里还是放在 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”剪贴板数据粘贴到其中,它实际上会显示为格式化的文本。