Когда вы нажимаете 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
Хорошо, не правда ли?