Что такое эквивалент командной строки для копирования файла в буфер обмена? [Дубликат]

75

Что такое командная строка, эквивалентная нажатию CTRL + C по файлу в файловом менеджере, чтобы файл (а не имя файла) был скопирован в буфер обмена?

Ситуация, когда это может быть полезно и быстро, например, заключается в том, когда вы хотите скопировать в буфер обмена файл из каталога, который находится на терминале, чтобы быстро вставить файл в каталог, который вы находитесь в файловом менеджере. Есть и другие.

    
задан Strapakowsky 01.11.2012 в 08:46
источник

2 ответа

87

Когда вы нажимаете Ctrl-C поверх файла в файловом менеджере, содержимое файла НЕ копируется в буфер обмена. Простой тест: выберите файл в диспетчере файлов, нажмите Ctrl-C, откройте текстовый редактор, нажмите Ctrl-V. Результатом является не содержимое файла, а его полный путь.

В действительности ситуация немного сложнее, потому что вы не можете сделать обратное - скопируйте список имен файлов из текстового редактора и вставьте их в файловый менеджер.

Чтобы скопировать некоторые данные из командной строки в буфер обмена X11, вы можете использовать команду xclip , которую можно установить с помощью

sudo apt-get install xclip

для копирования содержимого файла или вывода некоторой команды в буфер обмена

cat ./myfile.txt|xclip -i

текст может быть затем вставлен где-то с помощью средней кнопки мыши (это называется «первичный буфер выбора»).

Если вы хотите скопировать данные в «буфер обмена», поэтому его можно вставить в приложение с помощью Ctrl-V, вы можете сделать

cat ./myfile.txt|xclip -i -selection clipboard

Чтобы иметь возможность копировать файлы из командной строки и вставлять их в файловый менеджер, вам нужно указать правильный «целевой атом», чтобы файловый менеджер распознавал данные в буфере обмена и также предоставляют данные в правильном формате - к счастью, в случае копирования файлов в файловом менеджере это всего лишь список абсолютных имен файлов, каждый в новой строке, то, что легко сгенерировать с помощью команды find :

find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

(по крайней мере, это работает для меня в KDE). Теперь вы можете вставить небольшой скрипт, который вы можете вызвать, скажем, cb :

#!/bin/sh
xclip -i -selection clipboard -t text/uri-list

, то вы поместите его в ~/bin , установите для него исполняемый бит и используйте его следующим образом:

find ${PWD} -name "*.txt"| cb

Ницца, не так ли?

    
ответ дан Sergey 01.11.2012 в 09:29
источник
8

Я слышал, что xclip также поддерживает копирование файлов с xclip-copyfile и xclip-pastefile . Однако я его не использовал, но это может быть решение.     

ответ дан Gladen 01.11.2012 в 11:03