7 votos

¿Es posible acceder al Portapapeles como un archivo desde la línea de comandos?

Cuando se copia algo en el portapapeles, ¿está disponible en algún lugar como archivo editable? Supongo que se escribe en algún sitio, aunque sea un archivo temporal, aunque probablemente me equivoque.

Me gustaría poder editar fácilmente el contenido del portapapeles, usando un editor como Vim, y luego tener esas ediciones guardadas de nuevo en el Portapapeles.

0 votos

Escribir el contenido de la pasta en un archivo en texto plano supondría todo un riesgo de seguridad, ya que los datos saldrían de una aplicación y se irían a otra. Como puedes ver en la respuesta, hay maneras de acceder a eso, pero volcarlo a un archivo cada vez que cambia sería una buena definición de malware y spyware TBH - especialmente si ese archivo fuera legible por cuentas de tipo no admin / no Root. Lo que has pedido es bastante lógico y lo he visto implementado de varias maneras.

0 votos

@bmike Buena observación sobre la accesibilidad del archivo temporal en todo el sistema. Creo que es solucionable, pero necesito acceso a un Mac primero para probar el script que tengo en mente :-)

0 votos

El tuyo no era tan malo ya que la persona tiene que desencadenar el fragmento @nohillside - tienes razón que esconderlo en /var/folders u otro espacio temporal restringido al usuario en lugar de temp global sería bastante fácil. La automatización "cada vez que se copia algo" es donde el verdadero problema sería una bola de nieve si el riesgo no se entendiera o gestionara.

6voto

benwiggy Puntos 8

Puedes leer y escribir en el pasteboard con los comandos del terminal pbcopy y pbpaste . Así que para editarlo podrías usar algo como

pbpaste > /tmp/clip.txt && vi /tmp/clip.txt && pbcopy < /tmp/clip.txt

Si lo necesitas a menudo, una función de shell podría ser más adecuada. Puedes definir una poniendo lo siguiente en tu .bashrc

pbedit() {
    local _t=$(mktemp)
    chmod 600 "$_t"

    pbpaste > "$_t"
    ${EDITOR:-vi} "$_t"
    pbcopy < "$_t"

    rm -f "$_t"
}

Este intenta para minimizar el riesgo de que otras personas accedan al archivo temporal mientras se edita (pero no puede evitar que alguien con privilegios de administrador o Root acceda).

1 votos

Mientras que el OP nunca dijo lo que el contenido del portapapeles puede ser, sin embargo, esta respuesta sólo es relevante para el texto y no los datos binarios que pueden estar en el portapapeles.

2 votos

Cierto, aunque los datos binarios no suelen prestarse a ser editados fácilmente con vim. Aunque me atrevería a decir que hay quien se enrolla así.

1 votos

Esto es impresionante. Sólo recuerde que la implementación de la mesa de trabajo en MacOS es como un servidor que puede contener múltiples elementos, binarios y de texto y siempre elementos de texto puede tener múltiples interpretaciones cuando Unicode o texto enriquecido se almacena. Para la mayoría de los casos suponiendo que tiene un solo elemento y que es texto es cierto. developer.apple.com/documentation/appkit/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X