Какая командная строка эквивалентна нажатию CTRL + C над файлом в файловом менеджере, чтобы файл (не имя файла) копировался в буфер обмена? Например, быстрый - это когда вы хотите скопировать в буфер обмена файл из каталога, в котором вы находитесь, чтобы быстро вставить файл в каталог, в котором вы находитесь в диспетчере файлов. Есть и другие.
Когда Вы нажимаете 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
Хороший, не так ли?
Я слышал, что xclip также поддерживает копирование файлов с помощью xclip-copyfile
и xclip-pastefile
. Я действительно не использовал это хотя, но это могло бы быть решением.
Mac OS имеет pbcopy
с более легким синтаксисом:
pbcopy < ~/.ssh/id_rsa.pub
или
cat ~/.ssh/id_rsa.pub | pbcopy
Для моделирования pbcopy
на Ubuntu с xclip
(установленный через sudo apt install xclip
):
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'