我们都知道一句话:在linux中,一切都是一个文件。
我的问题是:剪贴板在 linux 中是如何处理的?它是一个可访问且确定的文件吗?例如,是否可以用猫读取它或用重定向写入它?(如果你有足够的权限)
如果我的假设是正确的,它位于哪里,它是否特定于实现分布?
否。除非您有一个将剪贴板的内容复制到某个文件的第 3 方程序。
这是来自askubuntu 的基本答案剪贴板的内容存储在哪里?:
您似乎对 Linux 中的剪贴板缺乏了解。通常有 3 种可供用户使用。
这些剪贴板称为“选择”
有:
- PRIMARY - 这通常用于鼠标中键 = 复制/粘贴
- SECONDARY - 通常很少使用,但它存在。通常作为应用程序内特定的复制和粘贴。
- 剪贴板 - 通常是Ctrl+c和Ctrl+v样式的复制和粘贴。
默认情况下,所有这些都存储在控制应用程序的内存中(通常是 Xorg,但并非总是如此)。每个子应用程序都可以访问它。
剪贴板监视器和管理器可以监视剪贴板并将其内容存储在文件中,或者更常见的是,让您查看剪贴板历史记录。
这里有一些更有趣的信息来自剪贴板上的 archlinux's wiki
历史
在 X10 中,引入了剪切缓冲区。这些是存储任意文本并被大多数应用程序使用的有限缓冲区。然而,它们效率低下,并且它们的实施各不相同,因此引入了选择。剪切缓冲区早已被弃用,尽管某些应用程序(例如 xterm)可能对它们有遗留支持,但不太可能也不建议使用它们。
选择
Freedesktop.org将两个主要选择描述如下:[1]
基本的
用于当前选定的文本,即使它没有被明确复制,也用于鼠标中键粘贴。在某些情况下,也可以使用键盘快捷键进行粘贴。
剪贴板
用于涉及键盘快捷键或菜单项的显式复制/粘贴命令。因此,它的行为类似于 Windows 上的单剪贴板系统。与 PRIMARY 不同的是,它还可以处理多种数据格式。
Xorg的大多数程序,包括Qt和GTK+应用程序,都遵循这种行为。虽然ICCCM也定义了 SECONDARY 选择,但它没有达成一致同意的目的。尽管命名,所有三个选择基本上都是“剪贴板”。与旧的“剪切缓冲区”系统不同,任意应用程序可以修改存储在剪切缓冲区中的数据,而是一次只有一个应用程序可以控制或“拥有”一个选择。这可以防止选择操作中的不一致。
请参阅键盘快捷键页面,其中列出了许多程序中的默认快捷键。
同样重要的是要认识到,根据选择协议,在粘贴之前不会复制任何内容。例如,如果您在终端窗口中选择某个单词,关闭终端,然后想将其粘贴到其他地方,则将无法使用,因为终端已消失且文本尚未复制到任何地方。如果您希望在关闭终端窗口后保留该单词,请考虑安装剪贴板管理器。
注意:剪贴板管理器可以显着改变用户体验,例如,他们可能会同步 PRIMARY 和 CLIPBOARD 选择以模拟单剪贴板系统。
| 归档时间: |
|
| 查看次数: |
2449 次 |
| 最近记录: |