web-dev-qa-db-fra.com

Qu'est-ce qui ressemble à pbcopy pour Linux sous OSX?

Dans un terminal sous OSX, je peux diriger la sortie vers pbcopy, puis aller dans un navigateur Web et la coller. J'ai essayé cela sous Linux avec xcopy, mais lorsque je passe au navigateur, il écrase simplement le presse-papiers avec ce qu'il contenait lors de la dernière utilisation du navigateur. Qu'est-ce qui fonctionne comme pbcopy sous Linux?

134
tony_sid

si vous avez installé X, vous pouvez essayer xsel de cette façon:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

ou avec xclip:

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'

maintenant vous pouvez les utiliser:

echo 'go to my clipboard' | pbcopy

lorsque je n'ai pas X j'utilise GNU la fonctionnalité Screen pour copier entre des shells ouverts dans une session à l'aide du clavier

copier: Ctrl-a -> Esc -> go to wanted position * -> Space (to begin selecting) -> press k to go forward mark text -> Enter

coller: Ctrl-a + ]

* les mouvements sont effectués avec vim comme les raccourcis clavier (j, k, l & m).

158
amized

Placez un script comme celui-ci appelé pbcopy dans votre dossier bin:

#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p

Cela mettra STDIN à la fois dans votre tampon de sélection et dans le presse-papiers:

echo Hello world |pbcopy
9
Erik

Développer les solutions de @Erik et @xpixelz; ces deux scripts devraient fonctionner sur les deux plateformes:

pbcopy:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  cat | /usr/bin/pbcopy
else
  # copy to selection buffer AND clipboard
  cat | xclip -i -sel c -f | xclip -i -sel p
fi

pbpaste:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  /usr/bin/pbpaste
else
  xclip -selection clipboard -o
fi
5
Wes Turner

Cette réponse fait référence au sous-système Linux pour Windows.

Réponse courte: utilisez clip.exe comme s'il s'agissait de pbcopy afin de mettre quelque chose dans le presse-papier de Windows. C'est magique. Exemple echo "Hello Windows" | clip.exe dans votre terminal bash ou Ubuntu bash, puis ctrl-v dans un programme Windows.

Plus de contexte:

Dans un commentaire ci-dessus / j'ai mentionné que, lors de l'utilisation de Xming sous Windows pour activer cette fonctionnalité, il est nécessaire de définir une variable DISPLAY (export DISPLAY=:0, dans de nombreux cas) avant que les solutions xsel et xclip ne fonctionnent. Curieusement, cette solution fonctionne de manière stochastique et peu fiable: lors du collage de Linux à Windows, une pression sur ctrl-v entre une et dix fois provoque le collage du presse-papiers (une fois) (cela se trouve sur Windows 10 Surface Book 2). Ne perdez pas votre temps, utilisez clip.exe.

NOTE: N'oubliez pas le .exe. Sinon, Ubuntu bash vous proposera d'installer le paquet Linux geomview, ce qui n'est pas ce que vous voulez.

2
scottgwald