GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo copiar la salida de un comando directamente en mi portapapeles?

Creé una herramienta para Linux/OSX/Cygwin que es similar a algunas de estas otras pero ligeramente única. Lo llamo cb y se puede encontrar en este github gist.

En esa esencia, demuestro cómo copiar y pegar a través de la línea de comandos usando Linux, macOS y Cygwin.

Linux

_copy(){
    cat | xclip -selection clipboard
}

_paste(){
    xclip -selection clipboard -o
}

macOS

_copy(){
    cat | pbcopy
}

_paste(){
    pbpaste
}

Cygwin

_copy(){
    cat > /dev/clipboard
}

_paste(){
    cat /dev/clipboard
}

Nota:originalmente solo tenía la intención de mencionar esto en mi comentario a la respuesta de Bob Enohp. Pero luego me di cuenta de que debería agregar un README a mi esencia. Dado que el editor de Gist no ofrece una vista previa de Markdown, utilicé el cuadro de respuesta aquí y después de copiarlo/pegarlo en mi pensamiento de Gist, "También podría enviar la respuesta". Si desea hablar sobre la funcionalidad/errores probablemente sería mejor hacer eso en los comentarios de la esencia en github.

cb

Una camiseta a prueba de fugas para el portapapeles

Este script sigue el modelo de tee (ver man tee ).

Es como sus comandos normales de copiar y pegar, pero unificado y capaz de detectar cuándo desea que sea encadenable

Ejemplos

Copiar

$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017

Pegar

# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017

Encadenamiento

$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017

Copiar mediante redirección de archivo

(cronológicamente, tenía sentido hacer una demostración de esto al final)

# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00

Siempre quise hacer esto y encontré una manera agradable y fácil de hacerlo. Anoté el procedimiento completo en caso de que alguien más lo necesite.

Primero instala un programa de 16 kB llamado xclip :

sudo apt-get install xclip

Luego puede canalizar la salida a xclip para ser copiado en el portapapeles:

cat file | xclip

Para pegar el texto que acabas de copiar, debes usar:

xclip -o

Para simplificar la vida, puede configurar un alias en su archivo .bashrc como hice yo:

alias "c=xclip"
alias "v=xclip -o"

Para ver cuán útil es esto, imagina que quiero abrir mi ruta actual en una nueva ventana de terminal (puede haber otras formas de hacerlo como Ctrl +T en algunos sistemas, pero esto es solo con fines ilustrativos):

Terminal 1:
pwd | c

Terminal 2:
cd `v`

Observe el ` ` alrededor de v . Esto ejecuta v primero como un comando y luego lo sustituye en el lugar por cd usar.

Solo copia el contenido al X portapapeles

cat file | xclip

Si desea pegar en otro lugar que no sea un X aplicación, prueba esta:

cat file | xclip -selection clipboard

En OS X, usa pbcopy; pbpaste va en la dirección opuesta.

pbcopy < .ssh/id_rsa.pub

Linux
  1. ¿Cómo almacenar la salida de SHOW PROCESSLIST en un archivo en MySQL?

  2. ¿Cómo enviar aplicaciones de línea de comandos directamente al fondo?

  3. ¿Cómo agregar la salida a un archivo?

  4. ¿Cómo copiar el búfer de copia de pantalla GNU al portapapeles?

  5. ¿Cómo copiar la salida del terminal?

Cómo cambiar el color de salida de 'Echo' en Linux

¿Cómo almacenar la salida del comando en una matriz en Ansible?

Linux Shell:¿Copiar la salida en el portapapeles sin usar el mouse?

¿Cómo puedo copiar la salida de un comando remoto en el portapapeles local?

¿Cómo puedo copiar recursivamente todos los archivos pdf en un directorio (y sus subdirectorios) en un solo directorio de salida?

¿Cómo leer la columna IDLE en la salida del comando Linux 'w'?