El Clipboard

Algunas notas al respecto del uso y automatización del portapapeles.


macOS

En macOS, los comandos pbcopy y pbpaste permiten interactuar con el portapapeles desde la terminal. Pero no son las únicas herramientas disponibles, además de poder definir las propias. Por ejemplo:

pbclear

Podemos definir un comando para limpiar el portapapeles desde la línea de comandos con:

alias pbclear="pbcopy < /dev/null"

Usando osascript

osascript nos permite interactuar con AppleScript desde la línea de comandos para leer o escribir en el portapapeles.

osascript -e 'the clipboard'                # Leer el portapapeles
osascript -e 'set the clipboard to "Hola"' # Escribir al portapapeles

Programaticamente

Desde Swift o Python puede usarse para acceder al clipboard:

Swift

let pasteboard = NSPasteboard.general
let content = pasteboard.string(forType: .string)

Python con PyObjC

from AppKit import NSPasteboard, NSStringPboardType
pb = NSPasteboard.generalPasteboard()
print(pb.stringForType_(NSStringPboardType))

Utilerías

Algunas utilerías que permiten extender la funcionalidad del clipboard son:

    • osascript

Linux

Linux no tiene un sistema de clipboard universal, ya que depende del entorno gráfico, no existen comandos universales exactos como pbcopy y pbpaste, pero sí hay alternativas funcionales según el entorno. Aquí están las más comunes:

xclip (para X11)

Instalación

sudo apt install xclip        # Debian/Ubuntu
sudo dnf install xclip        # Fedora

Uso

echo "Hola mundo" | xclip -selection clipboard      # copiar
xclip -selection clipboard -o                       # pegar

xsel (otra opción para X11)

Instalación

sudo apt install xsel

Uso

echo "Hola mundo" | xsel --clipboard                # copiar
xsel --clipboard --output                           # pegar

wl-clipboard (para Wayland, especialmente en GNOME + Wayland)

Instalación

sudo apt install wl-clipboard

Uso

echo "Hola mundo" | wl-copy                         # copiar
wl-paste                                            # pegar
ComandoEntorno requeridoCopiarPegar
xclipX11xclip -sel clipxclip -sel clip -o
xselX11xsel --clipboardxsel --clipboard -o
wl-copy / wl-pasteWaylandwl-copywl-paste

Script

if command -v wl-copy &> /dev/null; then
  echo "Hola" | wl-copy
elif command -v xclip &> /dev/null; then
  echo "Hola" | xclip -selection clipboard
elif command -v xsel &> /dev/null; then
  echo "Hola" | xsel --clipboard
else
  echo "No clipboard tool found"
fi

    Windows

    En Windows también se puede acceder al portapapeles desde consola y PowerShell.

    Command Prompt

    Copiando al clipboard:

    echo Hola mundo | clip
    

    Copiando el contenido de un archivo:

    type archivo.txt | clip
    

    No hay un comando nativo en cmd.exe para pegar desde el portapapeles al flujo de salida (como haría pbpaste o xclip -o).

    PowerShell

    Copiando al clipboard:

    "Hola mundo" | Set-Clipboard
    

    desde un archivo:

    Get-Content archivo.txt | Set-Clipboard
    

    Leyendo al clipboard:

    Get-Clipboard
    

    Redirigiendo la salida del portapapeles:

    Get-Clipboard > salida.txt
    

    A manera de resumen

    PlataformaCopiarPegar
    cmd.exeecho holaclip
    PowerShellSet-ClipboardGet-Clipboard
    Linux (X11)xclip, xselxclip -o, xsel -o
    Linux (Wayland)wl-copywl-paste
    macOSpbcopypbpaste

      Scripts

      Estos scripts detectan revisan el comando disponible para copiar y pegar desde el portapapeles.

      copy_clipboard() {
        TEXT="$1"
        if command -v pbcopy > /dev/null; then
          echo "$TEXT" | pbcopy
        elif command -v xclip > /dev/null; then
          echo "$TEXT" | xclip -selection clipboard
        elif command -v xsel > /dev/null; then
          echo "$TEXT" | xsel --clipboard
        elif command -v wl-copy > /dev/null; then
          echo "$TEXT" | wl-copy
        elif command -v clip > /dev/null; then
          echo "$TEXT" | clip
        else
          echo "❌ No clipboard copy tool found."
        fi
      }
      
      paste_clipboard() {
        if command -v pbpaste > /dev/null; then
          pbpaste
        elif command -v xclip > /dev/null; then
          xclip -selection clipboard -o
        elif command -v xsel > /dev/null; then
          xsel --clipboard --output
        elif command -v wl-paste > /dev/null; then
          wl-paste
        elif command -v powershell.exe > /dev/null; then
          powershell.exe -Command "Get-Clipboard"
        else
          echo "❌ No clipboard paste tool found."
        fi
      }
      

      Uso

      copy_clipboard "Texto de ejemplo"
      paste_clipboard
      

      PowerShell puro (funciones personalizadas)

      function Copy-Clipboard {
          param([string]$Text)
          $Text | Set-Clipboard
      }
      
      function Paste-Clipboard {
          return Get-Clipboard
      }
      

      Uso

      Copy-Clipboard "Texto de prueba"
      Paste-Clipboard
      

      Python multiplataforma con pyperclip

      Se instala la biblioteca primero:

      pip install pyperclip
      

      Uso

      import pyperclip
      
      pyperclip.copy("Hola desde Python")
      print(pyperclip.paste())
      
      

      Twitter Wordpress eMail
      © Todos los derechos reservados.
      Dr. Eduardo René Rodríguez Avila
      Creación: 2025.07.07
      Última actualización: 2025.07.07
      El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.