907 Stimmen

Wie kann ich die Ausgabe eines Befehls direkt in meine Zwischenablage kopieren?

Wie kann ich die Ausgabe eines Befehls in meine Zwischenablage leiten und wieder einfügen, wenn ich ein Terminal verwende? Zum Beispiel:

cat file | clipboard

0 Stimmen

Mögliche Duplikate von Leitung zu/von Zwischenablage

0 Stimmen

Mögliche Duplikate von superuser.com/questions/104981/

0 Stimmen

Ich habe gerade eine ähnliche Frage gestellt, da ich xclip nicht zum Laufen bringen kann, wenn ich mich von Git Bash unter Windows in Ubuntu einlogge: stackoverflow.com/q/60117294/470749

4voto

Ryan Dsouza Punkte 93

Ich komme von einem abgespeckten KDE-Hintergrund und habe keinen Zugang zu xclip , xsel oder das andere schicke Zeug. Ich habe eine TCSH-Konsole, um die Sache noch schlimmer zu machen.

Erforderlich: qdbus klipper xargs bash

Eine ausführbare Bash-Datei erstellen foo.sh .

#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null

Nota: Dies muss in der Bash erfolgen, da TCSH keine mehrzeiligen Argumente unterstützt.

Gefolgt von einem TCSH-Alias in der .cshrc .

alias clipboard xargs -0 /path/to/foo

Erläuterung:

xargs -0 leitet stdin in ein einzelnes Argument. Dieses Argument wird an die ausführbare Bash-Datei weitergegeben, die eine "copy to clipboard"-Anforderung an klipper mit qdbus . Das Rohr nach /dev/null ist es, das Zeilenumbruchzeichen nicht zu drucken, das von qdbus an die Konsole.

Beispiel für die Verwendung:

ls | clipboard

Damit wird der Inhalt des aktuellen Ordners in die Zwischenablage kopiert.

Nota: Funktioniert nur als Rohr. Verwenden Sie die ausführbare Bash-Datei direkt wenn Sie ein Argument kopieren müssen.

4voto

tristobal Punkte 197

Unter Linux mit installiertem xclip:

xclip -Auswahl Zwischenablage < Datei

3voto

Vova Punkte 2407

Hier ist eine großartige Lösung für Arch Linux Benutzer. Installieren Sie xsel mit pacman, wie:

sudo pacman -S xsel

Erstellen Sie einen Alias in der Datei ~/.bashrc, etwa so:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

Laden Sie Ihr Terminal mit der Quelle neu:

source ~/.bashrc

verwenden Sie es wie oben erwähnt:

cat your_file.txt | pbcopy

Zu Ihrer Information: Es ist eine gute Praxis, alle Aliase in ~/.aliases zu speichern und sie in der Datei .bashrc aufzurufen

2voto

kornieff Punkte 2269

Auf der Grundlage früherer Beiträge habe ich die folgende leichtgewichtige Alias-Lösung gefunden, die zu folgenden Punkten hinzugefügt werden kann .bashrc :

if [ -n "$(type -P xclip)" ]
then
  alias xclip='xclip -selection clipboard'
  alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi

Beispiele:

# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018

# Paste
$ date
Sat Dec 29 14:12:57 PST 2018

# Chain
$ date | clipboard | wc
   1       6      29

1voto

G. C. Punkte 311

Es gibt eine Methode, die ohne Installation funktioniert xclip / xsel nützlich, wenn Sie keinen sudo-Zugang haben.

Sie brauchen nur vimx installiert, d.h. VIM + Clipboard-Unterstützung. Sie können es in den meisten Distros finden.

Speichern Sie dieses Skript als ~/copy_to_clipboard.sh ,

#!/bin/sh
if [ -z "$1" ]
  then
  str=" "
else
  str=$1
fi

vimx -u NONE -U NONE -N -c "let @a=\".\"" -c "let @*= \"$str\" " -c " put a " -c "sleep 2" -c " q!"

die Erlaubnis zur Ausführung erteilen: chmod +x ~/copy_to_clipboard und rufen Sie es mit auf:

~/copy_to_clipboard.sh STRING

Aus irgendeinem Grund müssen Sie einen Dummy setzen @a registrieren und in eine temporäre Datei einfügen. Andernfalls wird das Register der Zwischenablage nicht korrekt gesetzt. Zum Schluss verwerfen Sie die temporäre Vim-Datei.

Ihre Zwischenablage wird eingerichtet, Sie können sie mit einem Mittelklick der Maus einfügen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X