Canalizar hacia/desde el portapapeles en un script Bash

Resuelto moinudin asked hace 15 años • 31 respuestas

¿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/clipfuera 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
moinudin avatar Apr 15 '09 05:04 moinudin
Aceptado

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 cenviará 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 gpmla pantalla que tiene un portapapeles. Pruebe el comando Pantalla readreg.

En Windows 10+ o Cygwin, use /dev/clipboardo clip.

lhunath avatar Apr 15 '2009 05:04 lhunath

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

doug avatar Nov 17 '2010 19:11 doug

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-getni 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_aliaseso 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 setclipy getclip, por ejemplo:

$ echo foo | setclip
$ getclip
foo
tleb avatar Dec 13 '2014 08:12 tleb