linux剪贴板是一个文件吗?

Pou*_*tch 8 linux clipboard

我们都知道一句话:在linux中,一切都是一个文件

我的问题是:剪贴板在 linux 中是如何处理的?它是一个可访问且确定的文件吗?例如,是否可以用猫读取它或用重定向写入它?(如果你有足够的权限)

如果我的假设是正确的,它位于哪里,它是否特定于实现分布?

Xen*_*050 5

否。除非您有一个将剪贴板的内容复制到某个文件的第 3 方程序。

这是来自askubuntu 的基本答案剪贴板的内容存储在哪里?

您似乎对 Linux 中的剪贴板缺乏了解。通常有 3 种可供用户使用。

这些剪贴板称为“选择”

有:

  • PRIMARY - 这通常用于鼠标中键 = 复制/粘贴
  • SECONDARY - 通常很少使用,但它存在。通常作为应用程序内特定的复制和粘贴。
  • 剪贴板 - 通常是Ctrl+cCtrl+v样式的复制和粘贴。

默认情况下,所有这些都存储在控制应用程序的内存中(通常是 Xorg,但并非总是如此)。每个子应用程序都可以访问它。

剪贴板监视器和管理器可以监视剪贴板并将其内容存储在文件中,或者更常见的是,让您查看剪贴板历史记录。


这里有一些更有趣的信息来自剪贴板上的 archlinux's wiki

历史

在 X10 中,引入了剪切缓冲区。这些是存储任意文本并被大多数应用程序使用的有限缓冲区。然而,它们效率低下,并且它们的实施各不相同,因此引入了选择。剪切缓冲区早已被弃用,尽管某些应用程序(例如 xterm)可能对它们有遗留支持,但不太可能也不建议使用它们。

选择

Freedesktop.org将两个主要选择描述如下:[1]

  • 基本的

    用于当前选定的文本,即使它没有被明确复制,也用于鼠标中键粘贴。在某些情况下,也可以使用键盘快捷键进行粘贴。

  • 剪贴板

    用于涉及键盘快捷键或菜单项的显式复制/粘贴命令。因此,它的行为类似于 Windows 上的单剪贴板系统。与 PRIMARY 不同的是,它还可以处理多种数据格式。

Xorg的大多数程序,包括QtGTK+应用程序,都遵循这种行为。虽然ICCCM也定义了 SECONDARY 选择,但它没有达成一致同意的目的。尽管命名,所有三个选择基本上都是“剪贴板”。与旧的“剪切缓冲区”系统不同,任意应用程序可以修改存储在剪切缓冲区中的数据,而是一次只有一个应用程序可以控制或“拥有”一个选择。这可以防止选择操作中的不一致。

请参阅键盘快捷键页面,其中列出了许多程序中的默认快捷键。

同样重要的是要认识到,根据选择协议,在粘贴之前不会复制任何内容。例如,如果您在终端窗口中选择某个单词,关闭终端,然后想将其粘贴到其他地方,则将无法使用,因为终端已消失且文本尚未复制到任何地方。如果您希望在关闭终端窗口后保留该单词,请考虑安装剪贴板管理器

注意剪贴板管理器可以显着改变用户体验,例如,他们可能会同步 PRIMARY 和 CLIPBOARD 选择以模拟单剪贴板系统。