Direcionar retorno do comando para o clipboard

1. Direcionar retorno do comando para o clipboard

Anderson Dutra
andisu

(usa Ubuntu)

Enviado em 07/02/2013 - 14:58h

Olá, gostaria de saber se algum de vocês conhece alguma forma de eu direcionar o retorno de um comando para o clipboard, por exemplo.
Se eu faço o seguinte comando:
ls -lrt /etc/ > /dev/null

Estou direcionando o retorno do ls no null.
Se fizer
ls -lrt /etc/ > /dev/tty

Estou direcionando o retorno no stdout.

E como faço para direcionar o retorno para o clipboard(area de transferencia)? Para que ao dar um 'Ctrl+V' em algum outro programa seja colado o resultado do comando?

Obs: Não posso instalar nenhum tipo de aplicativo na máquina, não tenho acesso. Existe forma de fazer isso?



  


2. Re: Direcionar retorno do comando para o clipboard

Vitor Luis
VitorLuis

(usa Ubuntu)

Enviado em 07/02/2013 - 15:04h

Vish cara, sem instalar nada é punk. Porque iria te falar sobre o xclip...


3. Re: Direcionar retorno do comando para o clipboard

Anderson Dutra
andisu

(usa Ubuntu)

Enviado em 07/02/2013 - 15:31h

valeu cara, eu até ouvi falar dele, mas to numa empresa to tentanod achar um jeito de facilitar meu trabalho, e não tenho acesso para instalar nada no unix.


4. Re: Direcionar retorno do comando para o clipboard

Paulo
paulo1205

(usa Ubuntu)

Enviado em 07/02/2013 - 21:09h

Se você estiver usando um xterm como terminal, pode habilitar o recurso AllowWindowOps (pode ser com Control+Botão_direto_do_mouse) e usar a sequência de escape "\e]52;;mensagem\a" para colocar a mensagem (codificada com base64) no buffer do X. Por exemplo, se eu fizer, no bash,

echo -en "\e]52;;$(ls / | base64 | tr -d \\n)\a" 


o clipboard do X11 vai receber, por meio do xterm, o resultado do comando "ls /".

Esse comando não funciona no emulador de terminal do KDE (konsole), e requer, como eu disse, a ativação do recurso AllowWindowOps no xterm, que não vem habilitado por padrão. Não sei se funciona no gnome-terminal porque não uso Gnome.

Entretanto, se você estiver numa máquina com KDE ou Gnome, certamente tem também o D-Bus. No caso do KDE, o programa que mantém o clipboard é o Klipper, e você poderia setar o valor do clipboard com algo como segue (certamente existe algo parecido no Gnome).

qdbus org.kde.klipper /klipper setClipboardContents "`ls -l`" 



5. Re: Direcionar retorno do comando para o clipboard

Paulo
paulo1205

(usa Ubuntu)

Enviado em 08/02/2013 - 06:01h

Um ponto importante que eu esqueci de comentar é que as soluções dependem de se você está logado diretamente no console da máquina que produz os dados ou se está via rede numa máquina remota.

A solução com xterm lhe permite abrir o xterm na máquina local. Se você então se conectar a outras máquinas dentro desse xterm, pode enviar a sequência de escape mesmo a partir da máquina remota, desde que dentro do mesmo xterm.

Já a segunda solução requer que o qdbus (ou dbus-send, ou outra interface com o D-Bus de sua preferência) seja executado na própria máquina local. Com isso, se você tiver de pegar dados para o clipboard de uma máquina remota, terá de usar algum artifício como redirecionar a saída do ssh (o que o impede de usar comandos interativos) ou ter mais de uma conexão à máquina remota, para que numa você digite os comandos, e outra seja usada para tunelar as saídas que devem ir para o clipboard.

Existe como tunelar o D-Bus entre máquinas (ver, por exemplo, http://gabriel.sourceforge.net/howto.html), mas se você tem restrições quanto a instalação de pacotes, isso pode não ser viável para você.

O que precisamente você quer fazer? Dependendo do que for, talvez você consiga somente com o programa screen (ou tmux, ou byobu).


6. Re: Direcionar retorno do comando para o clipboard

Anderson Dutra
andisu

(usa Ubuntu)

Enviado em 08/02/2013 - 13:42h

Obrigado pela resposta, na verdade estou acessando uma máquina unix via putty, os comandos não adiantaram aqui.
Mas obrigado! Acho que não vai ter como fazer achei que tivesse algum arquivo no /dev/ q fosse o clipboard.... rs

Aqui está escrito que eu uso o Ubuntu, mas na verdade utilizo ele na minha casa.


7. Re: Direcionar retorno do comando para o clipboard

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/02/2013 - 11:56h

Ainda há como fazer, sim.

Existe um produto irmão do PuTTY, chamado Plink. A diferença entre eles é que enquanto o PuTTY é destinado a sessões interativas, que precisam de um terminal remoto, o Plink é destinado a executar um comando remoto e pegar sua saída, sem alocar um terminal, o que o torna ideal para scripts.

Você pode juntar o Plink com o PowerShell do Windows, que pode ser programado para falar com o clipboard (ver http://brianreiter.org/2010/09/03/copy-and-paste-with-clipboard-from-powershell/), e executar uma linha de comando como segue:

plink -l usuario maquina cmd cmdarg cmdarg | Out-Clipboard 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts