Представьте, что у меня есть эта строка в моем терминале:
youtube-dl --get-thumbnail --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=
После тестирования, я хотел бы скопировать эту строку выше в свой буфер обмена и вставить ее в некоторый файл сценария. Не вывод команды. Но, делая это, не используя мышь. Мне нравится держать руки только на клавиатуре. Я думаю, что быстрее, чтобы сделать некоторую кодировку:)
Вы можете использовать xclip:
some_command | xclip -selection c
Итак, в вашем случае:
youtube-dl .... | xclip -selection c
c означает буфер обмена.
Вы возможно, сначала необходимо установить xclip:
sudo apt-get install xclip
EDIT:
Если вы хотите, чтобы команда, которую вы набрали (а не вывод), скопировали в буфер обмена, вы может использовать здесь строки:
xclip -selection c <<<"$(echo foobar)"
Или труба:
echo foobar | xclip -selection c
Я сделал небольшой скрипт для zsh, который использует xclip для этого:
#!/bin/zsh
export HISTFILE=~/.zsh_history
fc -R
fc -l | tail -n 2 | sed -n '1p' | sed 's/[0-9]* //' | xclip -selection c
Этот скрипт копирует последнюю команду, которая была введена в оболочку / терминал в буфер обмена системы , Это не сработает на типичном удаленном сервере.
Я подумал, что мне понадобится всего пару минут, чтобы написать этот скрипт, но потребовалось много времени, чтобы заставить его работать, когда я наткнулся на этот путь zsh обрабатывает историю.
В этом случае tail -n 2 и first sed имеют дело с тем фактом, что команда для этого скрипта записывается в историю и поэтому получает две строки истории и удаляет последний.
Этот скрипт работает, и это была какая-то забавная головоломка, но мне действительно интересно, есть ли более простой или более элегантный способ сделать это с помощью zsh.