Jak wysłać stdin do schowka?


44

Czy istnieje uniksowa funkcjonalność, która pozwala na:

echo "Some Text" | copy-to-clipboard

masz na myśli stdout?
phunehehe

3
to naprawdę zależy od tego, po której stronie rury stoisz: P do polecenia, które wysyła ją do schowka, jego stdin.
Stefan,

2
Ludzie, którzy używają Uniksa od dłuższego czasu, powiedzą ci, że lepiej pisać <longTextFile straightToClipboard. Jest taki sam cat longTextFile straightToClipboard, ale nie wymaga uruchamiania cat. Tylko obserwacja. Możesz to zignorować. Zobacz Nagrodę za bezużyteczne korzystanie z kota, aby uzyskać dodatkowe informacje i przykłady, jeśli jesteś zainteresowany.
Mikel

Odpowiedzi:


34

Istnieje kilka narzędzi zdolnych do pisania w schowku; Używam xsel. Zapisuje flagi do podstawowego wyboru X ( -p), wyboru dodatkowego ( -s) lub schowka ( -b). Pominięcie -ispowoduje, że będzie czytać ze standardowego wejścia, więc chcesz:

$ echo "Some Text" | xsel -i -b

4
Kolejnym jest xclip; domyślnie przyjmuje standardowe wejście. Używam go tylko dlatego, że jest to pierwsze takie narzędzie, o którym się dowiedziałem.
Shawn J. Goff,

@Shawn Opublikuj jako osobną odpowiedź :)
Michael Mrozek

Myślę, że -inie jest to wymagane w tym przypadku: man xsel1.2.0 mówi:and the selection is set from standard input if standard input is not a terminal (tty)
Ciro Santilli 24 改造 中心 法轮功 六四 事件

xsel nie działał dla mnie (nie wiem dlaczego), ale xclip (na inne odpowiedzi) działał.
markrian

11

Używając xclip, jak sugerował @Nicolas, jeśli chcesz później wkleić zawartość schowka, na przykład używając Ctrl + V, możesz użyć tego w następujący sposób:

$ echo "Some Text" | xclip -selection clipboard

1
Nie próbuje ożywić starego pytania, ale jeśli jesteś leniwy, to echo "Some Text" | xclip -sel cteż działa.
anonimowy

9

możesz użyć xsel

xsel < file 

10
Pytanie brzmi: który schowek? Serwer Linux X ma 3 (zazwyczaj używane są tylko 2) ... xsel domyślnie korzysta ze schowka PODSTAWOWEGO. Schowek PODSTAWOWY uruchamia się automatycznie za każdym razem , gdy po prostu wybierzesz coś takiego. Wklejasz, naciskając środkowy przycisk myszy. Schowek typu Ctrl + C / Crtr + V nazywa się schowkiem SCHOWEK :) .. więc jeśli chcesz używać schowka Ctrl + C / Ctrl + V ze słowem „xsel”, polecenie brzmi: xsel -ib <file-long-or-short(„Spójrz, nie ma kota!” :) ... lub jeśli chcesz <file-long-or-short xsel -ib... -i jest domyślne. -b jest dla typu clipBoard
Peter.O

terminal gnome. Edytowane. @jamespo - to nie działa.
ripper234

u mnie działa na gnome-terminal w Ubuntu 10.04 za pomocą Xsel w repo (wklej ze środkowego przycisku)
jamespo

7

W Mac OS X są urocze pbcopyi pbpastepolecenia, które są bardzo pomocne :)


0

Najprostszy jest prawdopodobnie xclip:

$ echo "Some Text" | xclip

Następnie wklej za pomocą środkowego przycisku myszy.

Na przykład xselzazwyczaj nie jest instalowany domyślnie, więc może być konieczne jego zainstalowanie ( sudo apt-get install xclipna Debianie / Ubuntu).


2
xclipwymaga -selection clipboardopcji. Domyślnym wyborem dla strony podręcznika jest coś innego.
Acumenus

0

xclipjest dobrym sposobem, aby przejść zgodnie z odpowiedzią @Nicolas Raoul, ale podczas pipetowania do schowka wszystkiego, co zawiera nową linię, na przykład pwd, nowa linia jest również kopiowana. W niektórych sytuacjach może być pożądane, ale przeważnie nie chce się nowej linii.

Rozwiązaniem jest albo:

echo -n $(pwd) | xclip -selection clipboard

( -nusuwa nowy wiersz z powtórzonego argumentu)

lub:

printf %s $(pwd) | xclip -selection clipboard

""Wokół $(pwd)może być wymagane, ale działa i bez na ubuntu z bash.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.