В Windows я использовал утилиты копирования и вставки буфера обмена командной строки ...
pclip.exe
и gclip.exe
Это были порты UnixUtils Windows (но они обрабатывают только простой текст). Существовала пара других нативных утилит Windows, которые могли записывать / извлекать любой формат.
Я искал что-то похожее в Synaptic Package Manager, но ничего не могу найти.
Есть ли что-то, что я пропустил? ... или это доступно в скриптах Bash?
Тип утилиты, которую я хотел бы, сможет читать / писать через std-in / std-out или file-in / file-out и обрабатывать Unicode, Rich Text Format, изображения и т. Д. Форматы буфера обмена ...
Примечание: я не за менеджером буфера обмена.
Я использую xsel , но я использую его только с обычным текстом и текстом Unicode.
xsel
можно копировать и вставлять в три разных «буфера обмена». По умолчанию он использует первичный выбор X Window System , который в основном соответствует тому, что в данный момент находится в выборе. Система X Window также имеет вторичный выбор (который используется не часто) и выбор буфера обмена . Вероятно, вы ищете выбор буфера обмена , поскольку именно это среда рабочего стола (например, Gnome, KDE, XFCE) использует для своего буфера обмена. Чтобы использовать это с xsel:
xsel --clipboard < new-clipboard-contents.txt
xsel --clipboard > current-clipboard-contents.txt
Недавно я наткнулся на инструменты xclip-copyfile
, xclip-cutfile
и xclip-pastefile
(пакет , 113] ). Эти инструменты позволяют копировать / вырезать / вставлять целые файлы через командную строку.
Вы можете увидеть их справочную страницу здесь.
Я использовал parcellite в течение многих лет в качестве менеджера буфера обмена. Он работает в области уведомлений и предлагает множество опций для управления основным выбором и стандартным буфером обмена freedesktop.org.
Это был мой ответ на управление элементами буфера обмена.
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 [ 118]).
Недавно был выпущен новый менеджер буфера обмена с поддержкой индикатора-апплета (хотя пока не в архиве). В дополнение к отслеживанию истории буфера обмена, он также будет захватывать и сохранять записи буфера обмена данных (файлы, папки и т. Д.), Что может быть полезно, если вы много манипулируете файлами через среду графического интерфейса / буфера обмена.
Вы можете добавить следующие PPA : ppa:hel-sheep/pastie
Для этого вы можете использовать CopyQ . С веб-сайта:
Менеджер буфера обмена с расширенными функциями
blockquote>
- 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 / Indicators PPA, либо вручную загрузив предварительно упакованные
.deb
файлы последней стабильной версии из раздела Загрузки проекта .
clipit (http://clipit.rspwn.com/) является менеджером по буферу обмена для gtk, который позволяет передавать текст по каналу от командной строки:
ls | clipit;
Править: В настоящее время, нет, ничто на официальном сайте ClipIt кроме Вас не может получить его от GitHub
Как насчет настроек демона GPaste , апплета демона управления буфером обмена с интерфейсом DBus:
Установка:
Для установки в ] 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
Или [ 1127] установить с gpaste
по synaptic package manager
( а также gnome-shell-extensions-gpaste
, если вы используете Gnome-Shell).
Другой вариант - установка через software-center
.
Я думаю, что следующий инструмент удовлетворит ваши требования:
Если вы просто хотите скопировать текст в буфер обмена:
echo -n "some-text" | xclip -selection clipboard
Я пытаюсь разработать лучшее решение, которое не является менеджером буфера обмена, которое можно найти на https://github.com/baitisj/copypasta . Он еще не совсем правильно обрабатывает RTF и HTML, а большие изображения создают проблемы, но вы можете свободно размещать и отправлять патчи.
Для формата RTF я использую эту процедуру: я копирую текст в буфер обмена в приложении. Если я не уверен, что это rtf или что, я использую эту команду для проверки:
xclip -selection clipboard -o -t TARGETS
Когда она печатает что-то вроде этого:
TARGETS
text / RTF
text / richtext
Так что я не могу удержаться, чтобы громко воскликнуть: «Ну и дела, это гениально! Да благословит Бог Linux!» После этого выстрела следует просто очевидная вещь:
xclip -selection clipboard -o -t text/rtf > mypreciousRTFcontent.rtf
Затем я обрабатываю все это в libreoffice и рассылаю всем своим друзьям как спам.
: -)
Да, есть. Попробуйте tmux
, который является более продвинутым, чем screen
. Чтобы установить tmux, введите это в терминале:
sudo apt-get install tmux
Также попробуйте gpm
. Команды gpm
и tmux
могут быть хорошей комбинацией ...
Эй ya gnomers, это - то, что ya получают для использования CORBA-дерьма.
нет ничего лучше для yar программного обеспечения, чем использование инструментов, не установленных по умолчанию.
Имел ya, использовал надлежащую настольную среду, такую как KDE-плазма, у Вас не будет той проблемы, потому что ya мог просто использовать dbus из любого программного обеспечения ya как, например, консоль:
qdbus org.kde.klipper /klipper setClipboardContents "NiHao"
qdbus org.kde.klipper /klipper getClipboardContents
Лично, я на самом деле соединяюсь с dbus непосредственно с C#, что означает, что мне не нужен qdbus.
Это, вероятно, бесполезно для Вас, так как ya не имеют ограничителя, но я думал, что упомяну это так или иначе, только для раздражения ya из-за того, как это сделано правильно.
пз: не копируйте это код C#, Задача. Результат мог бы зайти в тупик.
private static async System.Threading.Tasks.Task<string> GetClipboardContentsAsync()
{
string clipboardContents = null;
Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
string service = "org.kde.klipper";
using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
{
await connection.ConnectAsync();
IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);
clipboardContents = await klipper.getClipboardContentsAsync();
} // End Using connection
return clipboardContents;
}
private static string GetClipboardContents()
{
return GetClipboardContentsAsync().Result;
}
private static async System.Threading.Tasks.Task SetClipboardContentsAsync(string text)
{
Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
string service = "org.kde.klipper";
using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
{
await connection.ConnectAsync();
IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);
await klipper.setClipboardContentsAsync(text);
} // End using connection
}
private static void SetClipboardContents(string text)
{
SetClipboardContentsAsync(text).Wait();
}