Утиліта копіювання та вставлення буфера обміну командного рядка?


127

У Windows я використовував утиліти копіювання та вставки командного рядка буфера обміну ...

  • pclip.exe і gclip.exe

Це були порти UnixUtils для Windows (але вони обробляли лише звичайний текст). Було кілька інших рідних утиліт Windows, які могли писати / витягувати будь-який формат.

Я щось шукав у Synaptic Package Manager, але нічого не можу знайти.

Щось там, що я пропустив? ... чи, можливо, це є в сценарії Баша?

Тип утиліти, яку я хотів би, зможе читати / писати через std-in / std-out або file-in / file-out, а також обробляти формати буфера обміну Unicode, Rich Text Format, зображення тощо. ...

NB: Я не після менеджера буфера обміну.


Дивіться пов’язане питання з unix.SE: unix.stackexchange.com/questions/30093/…
landroni


vim[enter]"+P : 3 (запустіть vim, а потім з " реєстру - тобто системний буфер обміну - вставити текст) . Тоді у вас є (один з) кращих текстових редакторів під рукою, і ви можете :w filename. Крім того, я завжди запускаю vim в tmux, що означає, що якщо мені потрібно скопіювати трохи тексту в термінал, я просто виберу (з vабо Vдля вибору рядка), а потім "+y(які янки або копіює в буфер), тоді я роблю новий tmux панель і може <ctrl> + <shift> + v вставити. Додатково я використовую випадково, xsel -b > filenameякщо мені потрібно написати буфер обміну до файлу. Ура ^ у ^
dylnmc

Відповіді:


131

Я використовую xsel Встановити xsel , але використовую лише звичайний текст та текст Unicode.


xselможна скопіювати та вставити в три різних "буфера обміну". За замовчуванням він використовує первинний вибір системи X Window System , який в основному є тим, що зараз є у виборі. Система X Window також має вторинний вибір (який використовується мало) та вибір буфера обміну . Ви, напевно, шукаєте вибір буфера обміну , оскільки саме це використовує середовище робочого столу (наприклад, Gnome, KDE, XFCE) для буфера обміну. Щоб використовувати це з xsel:

xsel --clipboard < new-clipboard-contents.txt
xsel --clipboard > current-clipboard-contents.txt

1
Аді ... xsel здається (?) Лише текстовим (як ви вже згадували), тому я буду шукати більш вигідну утиліту ... Однак мені було дуже цікаво читати його інформаційну документацію ... Я знав, що клацання мишею миші (у Терміналі) вставить вибраний текст в командний рядок, але я не усвідомлював, що ця функція стосується більшості додатків X ... вставляється за допомогою середнього клацання (але деякі програми, здається, перекривають це) .. Два буфера обміну! .. Дуже зручно ... Я повинен прочитати докладніше про 3-й буфер X-вибору.
Пітер.О

xsel працює з текстом Unicode. Докладніше про буфер обміну X можна прочитати на вікі-сторінках freedesktop : freedesktop.org/wiki/Specifications/ClipboardsWiki .
Аді Ройбан

Я мушу обвести цю нову інформацію .. 3 буфера обміну! ПЕРВИЧНА, СЕКУНДАРНА, КЛІПБОРДА ... Це дуже відрізняється від того, до чого я звик у Windows ... Третій "CLIPBOARD", схоже, такий же, як буфер обміну для Windows / Mac ... але смішно пізно тут .. Я повернусь до цього завтра ... (Інтестуючи, але занадто багато, щоб читати зараз ..)
Пітер.О

Дякую ... xselвиконує завдання (для тексту) ... Щось може з’явитися для інших форматів.
Пітер.O

6
xsel -bкороткий для xsel --clipboard.
Андрій Дума

85

xclip Встановіть xclip може бути одним із ваших варіантів.

cat samples.sh | xclip -sel clip

ви також можете встановити його у файлі .bashrc, використовуючи псевдонім.

alias clipboard='xclip -sel clip'

Ключовим фактором, щоб вставити бінарні дані у файл, xclipє сказати, які типи носіїв у буфера обміну. Для PNG можна:

xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"

Тож тепер ~/Dropbox/.mybashrc;) Ви можете додати псевдонім (clipboard2photo), щоб легко вставити у файл зображення (можливо, колись у нас це буде на Nautilus ).


Це виглядає добре, але я просто не мав шансу заглянути в це, але ... я це зроблю якнайшвидше ...
Peter.O

xclip також обробляє лише виділення тексту.
Стів Бітті

2
Також команда може бути такою короткою, якxclip -se c
Джеромі Англім

1
Я не розумію, чому цього немає на сторінці чоловіка
Сергій Колодяжний

1
Я отримую це під час спроби вставити зображення у файл Помилка: цільове зображення / png недоступне
Еміліо Ніколас

12

Парцеліт

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

Лоток значок

Це моя відповідь на керування предметами буфера обміну.

Переваги


Це виглядає як хороший додаток для панелі. "Дії" зручно ... але, на жаль, це не той тип інструменту, який я шукаю. Я переробив своє запитання, щоб включити ще якусь конкретну інформацію ... Можливо, саме те, за чим я хотів, - це незрозумілий скрипт Python, або подібне ... Було доступно кілька дуже хороших нативних утиліт, лише для Windows, тому я думаю, що еквівалент буде плавати десь у Ubuntu / Linux world ...
Peter.O

FYI, Parcellite має цікаву особливість - історію скопійованого тексту. Щоб активувати автоматичне вставлення з діалогового вікна історії, вам також слідinstall xdotool
Ноам Манос

10

Нещодавно я натрапив на інструменти xclip-copyfile, xclip-cutfileі xclip-pastefile(пакет xclip). Ці інструменти дозволяють копіювати / вирізати / вставляти цілі файли за допомогою командного рядка.

Ви можете побачити їх сторінку людини тут.


10

clipit ( http://clipit.rspwn.com/ ) - це менеджер буфера обміну для gtk, який дозволяє констатувати текст з командного рядка:

ls | clipit;

Редагувати: В даний час на офіційному веб-сайті ClipIt нічого немає, але ви можете отримати це від GitHub


Я використовую ClipIt з інших причин і не знав, що здатний отримувати дані з терміналу. Дякую за цю інформацію.
Juraj.Lorinc

3

Ви можете використовувати CopyQ для цього. З веб-сайту:

Буфер обміну з додатковими функціями

  • CopyQ - менеджер буфера обміну з історією пошуку та редагування.
  • Підтримує Linux та Windows.
  • Експериментальна підтримка OS X 10.9+.
  • Зберігайте текст, HTML, зображення та будь-який інший спеціальний формат.
  • Розширений інтерфейс командного рядка та сценарії.

Щоб скопіювати текстовий файл:

copyq action "cat /tmp/file.txt" "" && copyq select 0

Щоб скопіювати зображення (потрібно вказати тип MIME):

copyq write image/png - < file.png && copyq select 0

Щоб скопіювати файл даних (потрібно вказати тип MIME):

copyq write application/pdf - < file.pdf && copyq select 0

Перегляньте їхні вікі для отримання додаткової документації та прикладів використання .

Ви можете встановити його або через ppa: noobslab / індикатори PPA, або завантаживши попередньо упаковані .debфайли останньої стайлі вручну з розділу завантаження проекту .


1
Програма ppa не є актуальною, принаймні для Ubuntu 16.04, краще завантажити її безпосередньо з випусків сайту GitHub CopyQ безпосередньо.
Миколай

3

Якщо ви просто хочете скопіювати якийсь текст у буфер обміну:

echo -n "some-text" | xclip -selection clipboard


2

Пасті

Нещодавно був випущений новий менеджер буфера обміну із підтримкою аплетів Indicator (хоча він ще не знаходиться в архіві). На додаток до відстеження історії текстового буфера він також буде захоплювати та зберігати записи буфера обміну даними (файли, папки тощо), що може бути корисним, якщо ви багато керуєте файлами через середовище GUI / буфер обміну.

alt текст

Ви можете додати наступний PPA :ppa:hel-sheep/pastie


Дякую за пропозицію Марко, але я не потребую менеджера буфера обміну. Іноді я вставляю якийсь тимчасовий текст у текстовий файл, але насправді виявляю, що "менеджер історії" сповільнює роботу (але це лише я). Я дійсно після інструменту командного рядка, який може вибірково витягувати / зберігати конкретний формат від / до clipboad .. я припускаю , що буфер обміну Ubuntu схожий на той , Windows , (я б приголомшений , якщо він значно відрізняється, тому що користувачами вимога однаково на будь-якій платформі) ... я я впевнений, що хтось знайде вашу пропозицію корисною.
Пітер.О


1

Як щодо налаштувань демона GPaste , аплету демона управління буфером обміну з інтерфейсом DBus:

  • GPaste - це набір для управління буфера обміну для GNOME, написаний у Валі
  • Вигляд налаштувань GPaste був оновлений, щоб краще відповідати останнім GNOME
  • Демон зараз повністю рівномірний (більше не опитування, менша витрата енергії)
  • Тепер GPasteClipboard має сигнал "зміна власника", аналогічний сигналу GtkClipboard
  • Нове налаштування, щоб встановити максимальний об'єм пам'яті, використовуваний даними в історії
  • Режим FIFO відмінено (не вистачає дизайну)
  • Очищення та модернізація коду
  • g_paste_history_add тепер передача завершена
  • g_paste_keybinder_add_keybinding тепер передача завершена

Установка:

Щоб встановити його в Ubuntu 13.10 , 13.04 , 12.10 або 12.04 , використовуйте команди нижче:

sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-gpaste

Або встановити gpasteчерез synaptic package manager(а також gnome-shell-extensions-gpasteякщо ви використовуєте Gnome-Shell).

Інший варіант - установка наскрізь software-center.

введіть тут опис зображення


1

Я намагаюся розробити краще рішення, яке не є менеджером буфера обміну, знайденим на веб- сайті https://github.com/baitisj/copypasta . Він ще не обробляє RTF та HTML ще правильно, а великі зображення створюють проблеми, але не соромтеся розщедритися та надіслати патчі.


1

Для формату RTF я використовую цю процедуру: я копіюю текст у буфер обміну в додатку. Якщо я не впевнений, що це rtf чи що, я використовую цю команду для перевірки:

xclip -selection clipboard -o -t TARGETS

Коли він виводить щось подібне:

ЦІЛИ

текст / rtf

текст / багатотекст

Тому я не можу протистояти, щоб вигукнути досить вголос: "Боже, це геніально! Бог благословить Linux!" Після цієї пострільної молитви випливає просто очевидна річ:

xclip  -selection clipboard -o -t text/rtf > mypreciousRTFcontent.rtf

Потім я обробляю це у вільному доступі і надсилаю всім своїм друзям як спам.

:-)


-1

Так, є. Спробуйте, tmuxякий є більш досконалим, ніж screen. Щоб встановити tmux, введіть це в терміналі:

sudo apt-get install tmux

Також спробуйте gpm. Команди gpmі tmuxможуть бути гарним поєднанням ...


2
Екран - це мультитермінальний емулятор, а не менеджер буфера обміну.
Марко Цеппі

Здається, що екран і tmux працюють лише на рівні терміналу (я не можу знайти жодної посилання на "буфер обміну" в жодній їх інформаційній документації) ... Що я шукаю, це утиліта для копіювання та вставлення буфера обміну в загальній системі. ... Я, мабуть, не повинен був використовувати термінал як тег ... Тип потрібної утиліти зможе читати / писати через std-in / std-out або file-in / file-out та обробляти Unicode / Формати буфера обміну з текстовим /
малюнком

Я щойно знайшов посилання на stackoverflow ... gpmпризначений для "буфера обміну", що не є X-терміналом, і GNU screenмає власний "буфер обміну" ... Я тепер бачу, чому ви їх згадали ... Це чудова інформація, і це підштовхнуло мене до глибшого розуміння того, що відбувається за лаштунками ... Я зараз дотримуюся основної Xterm "системи вибору" (clipboad). "Буфер обміну" Linux, здається, настільки відрізняється від Windows, що те, що я шукав, може бути зроблено тут зовсім по-іншому .. +1 :)
Peter.O
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.