Use algo como:
someCommand | clip
Isso canalizará o resultado para a área de transferência do Windows
No MacOSX há um comando que pode canalizar a saída de um comando para a área de transferência para que possa ser colado em algum outro lugar na GUI.
Como isso pode ser feito a partir do cmd.exe ou com um cmdlet do PowerShell?
Estou usando o shell de comando do Git Bash para Windows e, como alguém observou acima, usar clip
é muito chato, porque também copia o retorno de carro no final da saída de qualquer comando. Então eu escrevi essa função para resolver isso:
function cpy {
while read data; do # reads data piped in to cpy
echo "$data" | cat > /dev/clipboard # echos the data and writes that to /dev/clipboard
done
tr -d '\n' < /dev/clipboard > /dev/clipboard # removes new lines from the clipboard
}
Então, por exemplo:
$ pwd | cpy # copies directory path
$ git branch | cpy # copies current branch of git repo to clipboard
Apenas para referência, eu tive que copiar minha chave pública diretamente depois que o Bitbucket estava me dando um aviso de chave ruim. Consegui usar a resposta @soandos assim:
cat ~/.ssh/id_rsa.pub | clip
para copiar minha chave diretamente da linha de comando em um PC. (desde que a linha de comando suga em comparação ao terminal)
No PowerShell, insira o texto em Set-Clipboard
. Para digitação rápida, você pode usar o alias scb
. Isso não adiciona uma quebra de linha extra como o utilitário clip
.
Por exemplo, este comando coloca o conteúdo de myfile.txt
na área de transferência:
gc .\myfile.txt | scb
Observe que, para objetos que representam objetos do sistema de arquivos, Set-Clipboard
copia o objeto no mesmo sentido que o Explorer faz quando você pressiona Ctrl + C em um arquivo. Se não é isso que você queria, canalize o objeto através de Out-String
primeiro.
Esta função substitui o clipe padrão do Windows no Git Bash, onde uma nova linha é copiada.
function clip {
printf "$(</dev/stdin)" | cat > /dev/clipboard
}
Isso é baseado na resposta de Matthew , que preserva apenas a última linha e introduz uma nova linha à direita. Usar printf
evita a nova linha que echo
adiciona.