Làm thế nào để tôi gửi stdin vào clipboard?


44

Có chức năng trong unix cho phép như sau:

echo "Some Text" | copy-to-clipboard

bạn có nghĩa là stdout?
phunehehe

3
nó thực sự phụ thuộc vào phía nào của đường ống mà bạn đang đứng: P tới lệnh gửi nó vào bảng tạm, của nó stdin.
Stefan

2
Những người đã sử dụng Unix trong một thời gian dài sẽ cho bạn biết nên viết <longTextFile straightToClipboard. Nó giống như cat longTextFile straightToClipboard, nhưng không yêu cầu chạy cat. Chỉ là một quan sát. Hãy bỏ qua nó. Xem Giải thưởng sử dụng mèo vô dụng cho một số nền tảng và ví dụ nếu bạn quan tâm.
Mikel

Câu trả lời:


34

Có một vài công cụ có khả năng ghi vào bảng tạm; Tôi sử dụng xsel. Nó nhận các cờ để ghi vào lựa chọn X chính ( -p), lựa chọn thứ cấp ( -s) hoặc clipboard ( -b). Vượt qua nó -isẽ bảo nó đọc từ stdin, vì vậy bạn muốn:

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

4
Một số khác là xclip; Nó chấp nhận từ stdin theo mặc định. Tôi chỉ sử dụng nó bởi vì đó là công cụ đầu tiên mà tôi học được.
Shawn J. Goff

@Shawn Đăng nó dưới dạng một câu trả lời riêng :)
Michael Mrozek

Tôi nghĩ -ilà không bắt buộc trong trường hợp này: man xsel1.2.0 nói:and the selection is set from standard input if standard input is not a terminal (tty)
Ciro Santilli 心 心 事件

xsel đã không làm việc cho tôi (tôi không biết tại sao), nhưng xclip (theo các câu trả lời khác) đã làm.
markrian

11

Sử dụng xclip, như @Nicolas đã đề xuất, nếu sau này bạn muốn dán nội dung của bảng tạm, chẳng hạn như sử dụng Ctrl + V, bạn có thể sử dụng theo cách này:

$ echo "Some Text" | xclip -selection clipboard

1
Không cố gắng làm sống lại một câu hỏi cũ, nhưng nếu bạn lười biếng thì echo "Some Text" | xclip -sel ccũng làm việc.
anonymoose

9

bạn có thể sử dụng xsel

xsel < file 

10
Câu hỏi là: clipboard nào? Máy chủ Linux X có 3 (nói chung, chỉ có 2 được sử dụng) ... xsel sử dụng bảng tạm PRIMary theo mặc định .. Bảng tạm PRIMary tự động bật mỗi khi bạn chỉ cần chọn một thứ gì đó. Bạn dán nếu bằng cách nhấn nút chuột giữa .. Bảng tạm loại Ctrl + C / Crtr + V được gọi là bảng tạm CLIPBOARD :) .. vì vậy nếu bạn muốn sử dụng bảng tạm Ctrl + C / Ctrl + V với 'xsel', lệnh là: xsel -ib <file-long-or-short("Nhìn ma, không có mèo!" :) ... hoặc nếu bạn thích <file-long-or-short xsel -ib.. -i là mặc định. -b dành cho loại Ctrl + C / Ctrl + V của clipBoard
Peter.O

thiết bị đầu cuối gnome. Đã chỉnh sửa. @jamespo - điều này dường như không hoạt động.
ripper234

hoạt động với tôi trên gnome-terminal trong ubfox 10.04 bằng cách sử dụng xsel trong repo (dán bằng nút giữa)
jamespo

7

Trên Mac OS X có những lệnh đáng yêu pbcopypbpasterất hữu ích :)


0

Đơn giản nhất có lẽ là xclip:

$ echo "Some Text" | xclip

Sau đó dán bằng nút giữa của chuột.

Giống như xsel, nó thường không được cài đặt theo mặc định, vì vậy bạn có thể cần phải cài đặt nó ( sudo apt-get install xcliptrên Debian / Ubuntu).


2
xclipyêu cầu -selection clipboardtùy chọn. Lựa chọn mặc định trên mỗi trang man của nó là một cái gì đó khác.
Acumenus

0

xcliplà một cách tốt để đi như được trả lời bởi @Nicolas Raoul nhưng khi đường ống bất cứ thứ gì có chứa một dòng mới vào bảng tạm, chẳng hạn như pwd, dòng mới cũng được sao chép. Trong một số tình huống có thể mong muốn, nhưng chủ yếu là người ta không muốn dòng mới.

Giải pháp là:

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

( -nloại bỏ dòng mới khỏi đối số lặp lại)

hoặc là:

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

Các ""xung quanh $(pwd)có thể được yêu cầu nhưng nó hoạt động có và không có trên ubuntu với bash.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.