Respuestas:
Use algo como:
someCommand | clip
Eso canalizará el resultado al portapapeles de Windows
Estoy usando el shell de comandos de Git Bash para Windows, y como alguien señaló anteriormente, usar clip
es muy molesto, porque también copia el retorno de carro al final de la salida de cualquier comando. Entonces escribí esta función para abordarla:
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
}
Así por ejemplo:
$ pwd | cpy # copies directory path
$ git branch | cpy # copies current branch of git repo to clipboard
tr
y seguir usándolo clip
, es decir:pwd | tr -d \r\n | clip
Solo como referencia, tuve que copiar mi clave pública directamente después de que Bitbucket me diera una advertencia de clave incorrecta. Pude usar la respuesta de @soandos así:
cat ~/.ssh/id_rsa.pub | clip
copiar mi clave directamente desde la línea de comandos en una PC. (ya que la línea de comando apesta en comparación con la terminal)
En PowerShell, simplemente canalice el texto Set-Clipboard
. Para escribir rápidamente, puede usar el alias scb
. Esto no agrega un salto de línea adicional como lo hace la clip
utilidad.
Por ejemplo, este comando coloca el contenido de myfile.txt
en el portapapeles:
gc .\myfile.txt | scb
Tenga en cuenta que para los objetos que representan los objetos del sistema de archivos, Set-Clipboard
copiará el objeto en el mismo sentido que Explorer lo hace cuando Ctrl + C un archivo. Si eso no es lo que querías, pasa el objeto Out-String
primero.
Esta función reemplaza el clip estándar de Windows en Git Bash donde se copia una nueva línea final.
function clip {
printf "$(</dev/stdin)" | cat > /dev/clipboard
}
Esto se basa en la respuesta de Matthew, que solo conserva la última línea e introduce una nueva línea final. El uso printf
evita la nueva línea que echo
agrega.
C:\Windows\system32\clip.exe
.