Respostas:
Use algo como:
someCommand | clip
Isso canalizará o resultado para a área de transferência do Windows
Estou usando o shell de comando Git Bash para Windows e, como alguém observou acima, o uso clip
é muito irritante, porque também copia o retorno de carro no final da saída de qualquer comando. Então, eu escrevi esta função para abordá-lo:
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
tr
e ainda usar clip
, ou seja:pwd | tr -d \r\n | clip
Apenas para referência, tive que copiar minha chave pública diretamente depois que o Bitbucket me deu um aviso de chave ruim. Eu era capaz de usar a resposta @soandos assim:
cat ~/.ssh/id_rsa.pub | clip
copiar minha chave diretamente da linha de comando em um PC. (uma vez que a linha de comando é péssima em comparação com o terminal)
No PowerShell, basta inserir o texto Set-Clipboard
. Para digitação rápida, você pode usar o alias scb
. Isso não adiciona uma quebra de linha extra como o clip
utilitário.
Por exemplo, este comando coloca o conteúdo myfile.txt
na área de transferência:
gc .\myfile.txt | scb
Observe que, para objetos que representam objetos do sistema de arquivos, Set-Clipboard
o objeto será copiado no mesmo sentido que o Explorer faz quando você pressiona Ctrl + C um arquivo. Se não era isso que você queria, passe o objeto Out-String
primeiro.
Essa função substitui o clipe padrão do Windows no Git Bash, onde uma nova linha à direita é copiada.
function clip {
printf "$(</dev/stdin)" | cat > /dev/clipboard
}
Isso se baseia na resposta de Mateus, que preserva apenas a última linha e introduz uma nova linha à direita. O uso printf
evita a nova linha que é echo
adicionada.
C:\Windows\system32\clip.exe
.