Чи буфер обміну linux файлом?


8

Всім нам відома приказка: в Linux все є файлом .

Моє запитання: як обробляється буфер обміну в Linux? Це доступний і визначений файл? Чи можна було б прочитати його з кішкою або написати в ній з перенаправленням, наприклад? (Враховуючи, що у вас є достатня привілей)

Якщо моє припущення є правильним, то де воно розташоване і чи залежить від його розподілу реалізація?


Це насправді не "все - файл", це "все схоже на файл". Думайте API, а не фізичні файли.
MZB

Відповіді:


5

Ні, якщо у вас немає сторонньої програми, яка копіює вміст буфера обміну в файл кудись.

Ось основна відповідь з сайту askubuntu: Де зберігається вміст буфера обміну? :

Здається, вам не вистачає розуміння буферів обміну в Linux. Користувачам зазвичай доступні 3.

Ці буфери називаються "Вибірки"

Існує:

  • ПЕРШИЙ - Це зазвичай використовується для середньої кнопки миші = копіювати / вставляти
  • ДРУГИЙ - Зазвичай не використовується багатьма, але він існує. Зазвичай як копія та вставка певної програми.
  • CLIPBOARD - зазвичай копіюйте та вставляйте стиль Ctrl+ cта Ctrl+ v.

Усі вони за замовчуванням зберігаються в пам'яті керуючої програми (зазвичай Xorg, але не завжди). І кожна програма для дітей має доступ до неї.

Існують монітори та менеджери буфера обміну, які можуть відстежувати буфер обміну та зберігати їхній вміст у файлі, або, звичайно, дозволяють переглянути історію буфера обміну.


Ось трохи більше цікавої інформації з вікі Archlinux у буфері обміну

Історія

У X10 були введені вирізані буфери. Це були обмежені буфери, які зберігали довільний текст і використовувались у більшості програм. Однак вони були неефективними, а їх реалізація відрізнялася, тому вибір був запроваджений. Вирізані буфери давно застаріли, і хоча деякі додатки (наприклад, xterm) можуть мати застарілу підтримку для них, це ймовірно і не рекомендується використовувати.

Вибірки

Freedesktop.org описує два основні виділення так: [1]

  • ПЕРШИЙ

    Використовується для обраного в даний час тексту, навіть якщо він явно не скопійований, і для вставки середнього клацання мишею. У деяких випадках вставка також можлива за допомогою комбінації клавіш.

  • КЛІПБОРД

    Використовується для явних команд копіювання / вставки, що включають комбінації клавіш або пункти меню. Отже, вона поводиться як система однокліпного буфера в Windows. На відміну від PRIMARY, він також може обробляти декілька форматів даних.

Більшість програм для Xorg , включаючи додатки Qt та GTK + , дотримуються такої поведінки. Хоча МККЗК також визначає ВТОРИЧНИЙ відбір, він не має узгодженої мети. Незважаючи на найменування, всі три виділення в основному є "буфером обміну". Замість старої системи "розрізаних буферів", де довільні програми могли змінювати дані, що зберігаються в розрізаних буферах, лише одна програма може контролювати або "володіти" виділенням одночасно. Це запобігає невідповідності в роботі вибору.

Див. Сторінку швидких клавіш на клавіатурі, де перелічені ярлики за замовчуванням для багатьох програм.

Важливо також усвідомити, що згідно з протоколами відбору нічого не копіюється, поки воно не буде вставлено . Наприклад, якщо ви вибрали якесь слово у вікні терміналу, закрийте термінал, а потім хочете вставити його десь в іншому місці, воно не працюватиме, оскільки термінал відсутній, а текст ніде не скопійовано. Якщо ви хочете, щоб слово було збережене після закриття вікна терміналу, розгляньте можливість встановлення менеджера буфера обміну .

Примітка . Менеджери буфера обміну можуть істотно змінити користувацький досвід, наприклад, вони можуть синхронізувати вибір PRIMARY і CLIPBOARD для імітації системи з одним буфером обміну.


Чудова відповідь. Я просто зазначу, що в деяких робочих середовищах, таких як KDE, менеджер буфера обміну може бути встановлений за замовчуванням. У цьому випадку вміст буфера обміну (та деяка історія виділень) може зберігатися десь менеджером буфера обміну, оскільки вони можуть бути доступні при наступному вході.
Джо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.