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
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
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.
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
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
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 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.
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
5 Stimmen
Speichern Sie den Inhalt der Datei in der Zwischenablage.
apt install xclip
ycat file | xclip -sel clip