



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
| Comando | Entorno requerido | Copiar | Pegar |
|---|---|---|---|
xclip | X11 | xclip -sel clip | xclip -sel clip -o |
xsel | X11 | xsel --clipboard | xsel --clipboard -o |
wl-copy / wl-paste | Wayland | wl-copy | wl-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
| Plataforma | Copiar | Pegar |
|---|---|---|
| cmd.exe | echo hola | clip |
| PowerShell | Set-Clipboard | Get-Clipboard |
| Linux (X11) | xclip, xsel | xclip -o, xsel -o |
| Linux (Wayland) | wl-copy | wl-paste |
| macOS | pbcopy | pbpaste |
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())
|
© 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. | |||||
