Canalizar hacia/desde el portapapeles en un script Bash
¿Es posible canalizar hacia/desde el portapapeles en Bash?
Ya sea conectando hacia/desde la manija de un dispositivo o usando una aplicación auxiliar, no puedo encontrar nada.
Por ejemplo, si /dev/clip
fuera un dispositivo enlazando al portapapeles podríamos hacer:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the clipboard
Hay una gran cantidad de portapapeles con los que podrías tener que lidiar. Supongo que probablemente seas un usuario de Linux que quiera poner cosas en el portapapeles principal de X Windows. Por lo general, el portapapeles con el que deseas hablar tiene una utilidad que te permite hablar con él.
En el caso de X, hay xclip
(y otros). xclip -selection c
enviará datos al portapapeles que funciona con Ctrl+ C, Ctrl+ V en la mayoría de las aplicaciones.
Si estás en Mac OS X, hay pbcopy
. P.ej,cat example.txt | pbcopy
Si está en modo terminal de Linux (sin X), mire gpm
la pantalla que tiene un portapapeles. Pruebe el comando Pantalla readreg
.
En Windows 10+ o Cygwin, use /dev/clipboard
o clip
.
Asegúrate de estar usando alias xclip="xclip -selection c"
o no podrás pegar usando Ctrl+ v.
Ejemplo: después de ejecutar echo -n test | xclip
, Ctrl+ vpegarátest
Instalar
# You can install xclip using `apt-get`
apt-get install xclip
# or `pacman`
pacman -S xclip
# or `dnf`
dnf install xclip
Si no tiene acceso a apt-get
ni pacman
, ni dnf
, las fuentes están disponibles en sourceforge .
Configuración
Intento
En ~/.bash_aliases
, agregue:
alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"
No olvides cargar tu nueva configuración usando . ~/.bash_aliases
o reiniciando tu perfil.
Pez
En ~/.config/fish/config.fish
, agregue:
abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"
No olvide reiniciar su instancia de pescado reiniciando su terminal para que se apliquen los cambios.
Uso
Ahora puedes usar setclip
y getclip
, por ejemplo:
$ echo foo | setclip
$ getclip
foo