O que é como o pbcopy do OSX para Linux

134

Em um terminal no OSX, posso canalizar a saída para o pbcopy e depois ir para um navegador da Web e colá-lo. Eu tentei isso no Linux com o xcopy, mas quando eu mudo para o navegador, ele substitui a área de transferência por qualquer que tenha sido a última vez que o navegador foi usado. O que funciona como o pbcopy no Linux?

    
por tony_sid 25.05.2011 / 11:08

4 respostas

158

se você tiver o X instalado, você pode tentar o xsel desta maneira:

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

ou com xclip:

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

agora você pode usá-los:

echo 'go to my clipboard' | pbcopy

quando eu não tenho X eu uso a funcionalidade GNU Screen para copiar entre os shells abertos em uma sessão usando o teclado

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

para colar: Ctrl-a + ]

* os movimentos são feitos com o vim como se fossem teclas (j, k, l & m).

    
por 25.05.2011 / 11:33
9

Coloque um script como este, chamado pbcopy, na sua pasta bin:

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

Isso colocará STDIN no buffer de seleção e na área de transferência:

echo Hello world |pbcopy
    
por 26.01.2015 / 11:20
5

Para expandir as soluções de @Erik e @xpixelz; esses dois scripts devem funcionar nas duas plataformas:

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
    
por 14.04.2015 / 20:10
2

Esta resposta refere-se ao Subsistema Linux para Windows.

Resposta curta: use clip.exe como se fosse pbcopy para colocar algo na área de transferência do Windows. É Magica. Exemplo echo "Hello Windows" | clip.exe no seu bash ou terminal bash do Ubuntu e, em seguida, 'ctrl-v' em um programa do Windows.

Mais contexto:

Em um comentário acima , mencionei que, ao usar o Xming no Windows para habilitar essa funcionalidade, é necessário definir uma variável DISPLAY ( export DISPLAY=:0 , em muitos casos) antes das soluções xsel e xclip funcionarem. Curiosamente, esta solução funciona de maneira pouco confiável e estocástica - ao colar do Linux para o Windows, pressionar ctrl-v entre uma e dez vezes faz com que a área de transferência seja colada (uma vez) (no Windows 10 Surface Book 2) . Não perca tempo, use clip.exe .

NOTA: Não esqueça o .exe . Caso contrário, o Ubuntu bash sugerirá que você instale o pacote Linux geomview , que não é o que você deseja.

    
por 07.01.2018 / 18:18

Tags