Como eu canalizo a saída padrão do terminal (stdout) para a área de transferência?

69

Por exemplo,

Digamos que eu queira listar o conteúdo de uma pasta e colá-los diretamente em uma janela de bate-papo para um amigo ver.

Eu percebi que eu poderia fazer ls > filename.txt para criar um arquivo (filename.txt) com esse conteúdo; Eu teria então que abrir ou imprimir o arquivo e manualmente selecionar e copiar o bloco de texto ( que pode ser chato / tedioso .) Eu claramente também poderia selecionar e copiar o arquivo. saída de ls diretamente de dentro da janela do terminal.

Seria muito mais rápido / fácil simplesmente canalizar a saída padrão para a área de transferência .

Qual comando de terminal me permite fazer isso?

    
por Insperatus 05.09.2012 / 17:28

1 resposta

82

Isso pode ser feito com xsel ou xclip utilitários de linha de comando. Como nenhum dos programas vem com o Ubuntu por padrão, você precisará primeiro instalá-los via Software Center ou terminal. Veja como no terminal (mas lembre-se de que você só precisa de um desses dois.)

sudo apt install xsel

sudo apt install xclip

Agora, alguns exemplos. Se você quiser copiar a saída de ls para a área de transferência, aqui está o que você faria:

Com xsel: ls | xsel -ib
Com xclip: ls | xclip -sel clip

Isso pode ser utilizado para outros comandos do terminal, bem . Digamos que você queira colar suas informações de rede em um fórum de ajuda.

Com xsel: sudo lshw -C network | xsel -ib
Com xclip: sudo lshw -C network | xclip -sel clip

Torne isso ainda mais fácil com um novo alias bash!

Edite seu arquivo ~/.bash_aliases (se ele ainda não existir, crie-o primeiro com touch ~/.bash_aliases )

Em seguida, adicione um (dependendo do programa que você decidiu usar):

alias copy='xclip -sel clip'     ~ ou ~ alias copy='xsel -ib'

Em seguida, salve e feche.

Agora (depois de reiniciar seu terminal) você pode enviar uma saída padrão para a área de transferência apenas canalizando-a para 'copiar' (ou qualquer nome que você decida nomear seu novo alias)

Por exemplo: ls | copy

    
por Insperatus 05.09.2012 / 17:28