Скопируйте содержимое файла в буфер обмена, не отображая его
В этом руководстве объясняется, что такое буфер обмена и как скопировать содержимое файла в буфер обмена без отображения содержимого файла с помощью каких-либо приложений для просмотра текста в Linux.
Что такое буфер обмена?
Вы обязательно будете вырезать или копировать и вставлять тексты в свою систему несколько раз в день. Возможно, вы не помните, сколько раз вы что-то копировали, или даже не задумывались о том, где на самом деле хранятся скопированные тексты. Но ведь надо было столько раз копировать/вырезать тексты. Для тех, кому интересно: в операционной системе есть временное место под названием "Буфер обмена". Буфер обмена — это место, где временно хранятся скопированные/вырезанные данные.
Буфер обмена — это буфер, используемый для кратковременного хранения данных. В основном он используется для передачи данных внутри приложений и между ними с помощью операций вырезания, копирования и вставки. Буфер обмена обычно представляет собой временное и безымянное место, которое находится в ОЗУ вашего компьютера.
Буфер обмена называется "Выборы", и в оконной системе X11 Linux доступно три типа буфера обмена. Они есть:
- PRIMARY — обычно используется при копировании/вставке данных с помощью средней кнопки мыши.
- SECONDARY — используется нечасто, но существует.
- БУФЕР ОБМЕНА – используется для явных команд копирования/вставки с помощью клавиатуры с использованием клавиш
ctrl+c
иctrl+v
, а также через пункты меню.
Существует множество инструментов для управления содержимым буфера обмена. Они известны как менеджеры и мониторы буфера обмена. В этом руководстве мы обсудим два инструмента командной строки, а именно Xclip и Xsel, которые используются для доступа к содержимому буфера обмена.
Теперь вернемся к нашей основной теме. Как скопировать содержимое файла без фактического отображения содержимого файла с помощью каких-либо внешних приложений, таких как редакторы nano
, vi
, или команд, таких как cat
? Прежде чем я освою этот метод, я обычно открываю файл или отображаю его содержимое в стандартном выводе, а затем копирую его содержимое с помощью мыши или клавиш Ctrl+c
на клавиатуре. Но вы можете сделать это, не отображая содержимое. Читайте дальше, чтобы узнать, как это сделать.
Обратите внимание, что xclip и xclip — это утилиты X11. Они будут работать только в системах, в которых установлена система X Window.
Скопируйте содержимое файла в буфер обмена, не отображая его содержимое, с помощью программ Xclip и Xsel в Linux.
Убедитесь, что в вашей системе Linux установлены программы Xclip
и Xsel
. Оба они доступны в репозиториях по умолчанию большинства дистрибутивов Linux.
Чтобы установить xclip
и xsel
в Arch Linux и его производных, запустите:
sudo pacman xclip xsel
В Федоре:
sudo dnf xclip xsel
В Debian, Ubuntu, Linux Mint:
sudo apt install xclip xsel
Теперь давайте посмотрим, как скопировать содержимое файла с помощью программ Xclip
и Xsel
. Для целей данного руководства я использую текстовый файл с именем ostechnix.txt
, содержимое этого файла приведено ниже:
cat ostechnix.txt
Linux is not an operating system.
It is a kernel.
GNU/Linux is the operating system.
Чтобы скопировать содержимое файла ostechnix.txt
в буфер обмена, не отображая его содержимое, выполните:
xclip -selection clipboard < ostechnix.txt
Или вкратце используйте это:
xclip -sel c < ostechnix.txt
Скопируйте содержимое файла в буфер обмена, не отображая его с помощью Xclip в Linux.
Xclip теперь скопировал содержимое файла ostechnix.txt
в буфер обмена. Вы можете вставить скопированные данные в любое место, используя клавиши Ctrl+p
или выбрав параметр вставить
из пунктов меню или контекстного меню, вызываемого правой кнопкой мыши.
Вы также можете скопировать содержимое файла в буфер обмена с помощью команды Xsel
, как показано ниже:
xsel --clipboard < ostechnix.txt
Или, вкратце, используйте это:
xsel -b < ostechnix.txt
Скопируйте содержимое файла в буфер обмена, не отображая его с помощью Xsel в Linux.
Чтобы сэкономить несколько штрихов, вы можете создать скрипт с именем «send2clip» со следующими строками:
#! /bin/bash
xclip -selection clipboard -i $@
Используйте для этого сценария любое имя по вашему выбору. Затем сделайте скрипт исполняемым:
chmod +x send2clip
Теперь передайте любой файл в качестве аргумента, чтобы скопировать его содержимое в буфер обмена. Например, следующая команда скопирует содержимое файла ostechnix.txt
:
./send2clip ostechnix.txt
Копирование вывода команд Linux и Unix в буфер обмена
Вы также можете отправлять в буфер обмена не только вывод файлов, но и вывод любых команд Linux и Unix с помощью программ Xclip
и Xsel
.
Чтобы скопировать вывод команды Linux в буфер обмена с помощью Xclip
и Xsel
, запустите:
command_name | xclip -sel c
command_name | xsel -b
Пример:
Скопируйте вывод команд Linux и Unix в буфер обмена.
Приведенные выше команды скопируют данные ядра вашей системы Linux в буфер обмена.
Чтобы узнать больше о командах Xclip и Xsel, обратитесь к справочным страницам.
man xclip
man xsel
Надеюсь это поможет.
Связанное чтение:
- Доступ к содержимому буфера обмена с помощью Xclip и Xsel в Linux
- Как использовать команды Pbcopy и Pbpaste в Linux