comando cygwin para copiar al portapapeles de Windows

82

Veo aquí:

http://www.pgrs.net/2008/1/11/command-line-clipboard-access

que hay una forma en linux y osx de copiar al portapapeles desde la línea de comandos. Así que ejecuté mi cygwin setup.exe, pero no pude encontrar el paquete xsel. Supongo que tal vez este paquete no se ha portado a Windows. Parece que hay una herramienta para hacerlo en Windows:

http://www.labnol.org/software/tutorials/copy-dos-command-line-output-clipboard-clip-exe/2506/

Supongo que intentaré eso, pero mientras tanto, pensé que preguntaría si alguien ha encontrado una buena solución.

andersonbd1
fuente

Respuestas:

66

En la página que vinculó, hay comentarios que sugieren cómo hacerlo en Windows:

En Windows, Cygwin viene con getclip y putclip que hacen el mismo trabajo.

Andre Miller
fuente
16
Si no los tiene disponibles, deberá instalar el cygutils-extrapaquete ( src ). Curiosamente, Babun omite este paquete por defecto.
chrnola
159

Cygwin viene con un archivo de dispositivo especial llamado /dev/clipboard:

echo foobar > /dev/clipboard  # Puts "foobar\n" on the clipboard
cat /dev/clipboard  # Pastes clipboard to stdout
Adam Rosenfield
fuente
3
esto también funciona, pero supongo que no puedo aceptar 2 respuestas diferentes
andersonbd1
5
Esto es mejor que getclip / putclip, ya que no requiere la instalación del paquete.
Stabledog
8
La ventaja de getclip / putclip sobre / dev / clipboard es que los primeros tienen opciones para convertir entre finales de línea unix y dos.
esquifit
8
La ventaja de / dev / clipboard es que admite UTF8, mientras que getclip / putclip no.
Maximilian Hils
2
Y es fácil de crear putclipcontener cat - >/dev/clipboardy getclipcontener cat /dev/clipboard, como alias o funciones o scripts, lo que más te guste. Puede usar cualquier par de nombres de script, por supuesto. Los Mac tienen pbcopyy pbpastepara poner y obtener información del tablero (portapapeles), por ejemplo.
Jonathan Leffler
28

Secundo la respuesta anterior

Para enviar texto al portapapeles de Windows

putclip < foo.txt

Para canalizar a un archivo cualquier texto que esté en el portapapeles de Windows

getclip > foo.txt

fuente
@Adrian Gracias por notar mi inútil uso de gato. Tiendo a abusar de los gatos en lugar de solo pipas. Actualicé mi respuesta.
25

getclip / putclip se encuentra en el paquete cygutils-extra.

yskkin
fuente
12

que tal solo

clip < file.extension

acabo de probar mi clave ssh

Benjamín Sweetnam
fuente
1
clip.exese introdujo en Windows Vista, así que sí, también puede usarlo, pero las opciones son limitadas.
RobSiklos
2

No exactamente Ditto, pero aquí hay un registrador de clibboard.

#!/usr/bin/ksh
while true
do
    if [[ "$(</dev/clipboard)" = "${LastClip}" ]]
    then
            sleep 2
    else
            LastClip="$(</dev/clipboard)"
            echo "$(</dev/clipboard)" >> $HOME/cliplog.txt
            sleep 1
    fi
done
Charles Stepp
fuente