xsel - утилита для работы с буфером обмена Linux

Категория: Linux

Утилита xsel используется для получения выделенного текста и манипуляции с буфером обмена. Статья содержит примеры использования и перевод стандартного хелпа из man. Чтение буфера обмена может понадобиться при написании консольных скриптов, которые нужно повесить на горячие клавиши.

Быстрые примеры:

xsel -p -o  ## primary,   получить выделенный текст
xsel -b -o  ## clipboard, получить скопированный текст
xsel -b -i  ## copy to clipboard

Как и xclip эта утилита не работает с изображениями!

На сервере выводит ошибку:

xsel: Can't open display: (null)
: Inappropriate ioctl for device
## Буфер обмена является функцией X11 ##

Параметры

Опции ввода:
  -i, --input     Записать данные в xsel
  -a, --append    Вставить после существующих данных в выбранном потоке (вместе с "i")
  -f, --follow    Добавить выбор как стандартный ввод / Append to selection as standard input grows (вместе с "i")
  -o, --output    Вывести данные (по умолчанию в консольный вывод)

Опции действия:
  -c, --clear      Очистить данные
  -d, --delete     Request that the selection be cleared and that the application owning it delete its contents
  -x, --exchange   Переключиться между PRIMARY / SECONDARY
  -t               Задержка выполнения операции в ms

Опции выбора:
  -p, --primary    Последняя выделенная область (по умолчанию).  
                   Если выделить что-то, а потом снять выделение - то предыдущая выделенная область запоминается в Primary.
  -s, --secondary  Вторичный буфер
  -b, --clipboard  Буфер обмена (clipboard), то что мы явно скопировали.

  -k, --keep       Do not modify the selections, but make the PRIMARY and SECONDARY selections persist even after the programs they were selected in exit.

X options:
  --display displayname    Specify the connection to the X server

  -l, --logfile     Файл логирования ошибок
  -n, --nodetach    Do not detach from the controlling terminal. Without this option, xsel will fork to become a background process in input, exchange and keep modes.

Примеры

Сохранить текст в буфере обмена:

echo -n "Записать строку в буфер обмена" | xsel -b -i

Добавить текст в буфер после существующего:

echo -n "Текст будет добавлен в буфер" | xsel -b -i -a

Копировать выделенный текст в буфер обмена:

xsel | xsel -b -i

Сохранить текст из первичного буфера (последний выделенный текст) в файл:

xsel -p > ~/clip.txt

Прочитать буфер обмена в переменную:

clipboard="$(xsel -b)"

Вывести буфер обмена в консоль:

xsel | xsel -b -o

#clipboard #xsel

категория: Linux