Một sao chép dòng lệnh và tiện ích dán?


127

Trong Windows, tôi đã sử dụng các tiện ích sao chép và dán bảng tạm thời dòng lệnh ...

  • pclip.exegclip.exe

Đây là các cổng UnixUtils cho Windows (nhưng chúng chỉ xử lý văn bản thuần túy). Có một vài tiện ích Windows gốc khác có thể viết / trích xuất bất kỳ định dạng nào.

Tôi đã tìm kiếm một cái gì đó tương tự trong Trình quản lý gói Synaptic, nhưng tôi không thể tìm thấy bất cứ thứ gì.

Có cái gì ở đó, mà tôi đã bỏ lỡ? ... hoặc có lẽ điều này có sẵn trong kịch bản Bash?

Loại tiện ích tôi muốn có thể đọc / ghi thông qua std-in / std-out hoặc file-in / file-out, và xử lý Unicode, Định dạng văn bản có định dạng, hình ảnh, v.v.

NB: Tôi không theo một trình quản lý clipboard.


Xem câu hỏi liên quan từ unix.SE: unix.stackexchange.com/questions/30093/iêu
Landroni


vim[enter]"+P : 3 (chạy vim và sau đó từ " thanh ghi - tức là hệ thống clipboard - dán văn bản) . Sau đó, bạn có (một trong) trình soạn thảo văn bản tốt nhất trong đầu ngón tay, để bạn có thể :w filename. Ngoài ra, tôi luôn chạy vim trong tmux , điều đó có nghĩa là nếu tôi cần sao chép một ít văn bản sang thiết bị đầu cuối, tôi chỉ cần chọn (có vhoặc Vđể chọn dòng) và sau đó "+y(sắp xếp hoặc sao chép vào bảng tạm), sau đó tôi tạo một bản mới khung tmux và có thể <ctrl> + <shift> + v để dán. Ngoài ra, tôi sẽ thỉnh thoảng sử dụng xsel -b > filenamenếu tôi cần ghi clipboard vào một tệp. Chúc mừng ^ u ^
dylnmc

Câu trả lời:


131

Tôi đang sử dụng xsel Cài đặt xsel , nhưng tôi chỉ sử dụng nó với văn bản đơn giản và văn bản unicode.


xselcó thể sao chép và dán vào ba "bảng ghi" khác nhau. Theo mặc định, nó sử dụng lựa chọn chính X Window System , về cơ bản là bất cứ thứ gì hiện đang được lựa chọn. Hệ thống X Window cũng có lựa chọn thứ cấp (không được sử dụng nhiều) và lựa chọn clipboard . Có lẽ bạn đang tìm kiếm lựa chọn clipboard , vì đó là những gì môi trường máy tính để bàn (ví dụ Gnome, KDE, XFCE) sử dụng cho clipboard của nó. Để sử dụng với xsel:

xsel --clipboard < new-clipboard-contents.txt
xsel --clipboard > current-clipboard-contents.txt

1
Adi ... xsel dường như chỉ dựa trên văn bản (như bạn đã đề cập), vì vậy tôi sẽ tìm kiếm một tiện ích toàn diện hơn ... Tuy nhiên, tôi đã rất thú vị khi đọc tài liệu thông tin của nó ... Tôi biết rằng nhấp chuột giữa (trong Terminal) sẽ dán văn bản hiện được chọn vào dòng lệnh, nhưng tôi không nhận ra rằng tính năng này áp dụng cho hầu hết các ứng dụng X ... Lựa chọn văn bản gần đây nhất có thể là dán qua một cú nhấp chuột giữa (nhưng một số ứng dụng dường như ghi đè lên nó) .. Hai clipboards! .. Rất tiện dụng .. Tôi phải đọc thêm về bộ đệm X-select thứ 3.
Peter.O

xsel không hoạt động với văn bản Unicode. Bạn có thể đọc thêm về X clipboard trên các trang wiki freedesktop : freedesktop.org/wiki/Specutions/ClipboardsWiki .
Adi Roiban

Tôi đã nhận được thông tin mới về thông tin mới này .. 3 clipboards! CHÍNH HÃNG, THỨ HAI, CLIPBOARD ... Điều này rất khác so với những gì tôi đã từng sử dụng trong windows ... Cái thứ ba "CLIPBOARD" dường như giống như một bảng tạm Windows / Mac ... nhưng ở đây thì muộn một cách nực cười .. Tôi sẽ quay lại vấn đề này vào ngày mai ... (Inersting, nhưng quá nhiều để đọc ngay bây giờ ..)
Peter.O

Cảm ơn ... xselthực hiện công việc (đối với văn bản) ... Một cái gì đó có thể bật lên cho các định dạng khác.
Peter.O

6
xsel -blà chữ viết tắt xsel --clipboard.
Andrei Duma

85

xclip Cài đặt xclip có thể là một trong những lựa chọn của bạn.

cat samples.sh | xclip -sel clip

bạn cũng có thể đặt nó trong tệp .bashrc bằng bí danh.

alias clipboard='xclip -sel clip'

Chìa khóa để dán dữ liệu nhị phân vào một tệp xcliplà cho biết loại phương tiện nào bạn có trên bảng tạm. Đối với PNG bạn có thể:

xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"

Vì vậy, bây giờ ~/Dropbox/.mybashrc;) bạn có thể thêm một bí danh (clipboard2photo) để dễ dàng dán vào tệp hình ảnh (có thể một ngày nào đó chúng ta sẽ có nó trên Nautilus ).


Điều này có vẻ tốt, nhưng tôi chưa có cơ hội để xem xét nó, tuy nhiên ... tôi sẽ làm điều đó càng sớm càng tốt ...
Peter.O

xclip cũng chỉ xử lý các lựa chọn văn bản.
Steve Beattie

2
Ngoài ra, lệnh có thể ngắn nhưxclip -se c
Jeromy Anglim

1
Tôi không hiểu tại sao điều này không có trong trang người đàn ông
Sergiy Kolodyazhnyy

1
Tôi nhận được điều này khi cố gắng dán hình ảnh vào tập tin Lỗi: hình ảnh mục tiêu / png không khả dụng
Emilio Nicolás

12

Parcellite

Tôi đã sử dụng parcellite trong nhiều năm như một trình quản lý clipboard. Nó chạy trong Khu vực thông báo và cung cấp nhiều tùy chọn để quản lý cả Lựa chọn chính và Clipboard freedesktop.org tiêu chuẩn.

Biểu tượng khay

Đó là câu trả lời của tôi để quản lý các mục clipboard.

Sở thích


Đây trông giống như một ứng dụng bảng điều khiển tốt .. "Hành động" rất tiện dụng ... nhưng thật không may, đây không phải là loại công cụ tôi đang tìm kiếm .. Tôi đã đặt lại câu hỏi của mình để đưa vào một số thông tin cụ thể hơn ... có lẽ điều chính xác tôi là sau khi có một kịch bản Python che khuất, hoặc những thứ tương tự ... có một vài rất tốt mẹ đẻ tiện ích Windows chỉ có sẵn, vì vậy tôi nghĩ rằng tương đương sẽ được nổi xung quanh đâu đó trong Ubuntu / Thế giới Linux ...
Peter.O

FYI, Parcellite có một tính năng thú vị - lịch sử của văn bản sao chép. Để kích hoạt tự động dán từ hộp thoại lịch sử, bạn cũng nêninstall xdotool
Noam Manos

10

Gần đây tôi đã xem qua các công cụ xclip-copyfile, xclip-cutfilexclip-pastefile(gói xclip). Các công cụ này cho phép bạn sao chép / cắt / dán toàn bộ tệp thông qua dòng lệnh.

Bạn có thể xem trang người đàn ông của họ ở đây.


10

clipit ( http://clipit.rspwn.com/ ) là trình quản lý clipboard cho gtk cho phép đường ống văn bản từ dòng lệnh:

ls | clipit;

Chỉnh sửa: Hiện tại, không có gì trên trang web chính thức của ClipIt nhưng bạn có thể lấy nó từ GitHub


Tôi đang sử dụng ClipIt vì những lý do khác và không biết nó có khả năng lấy dữ liệu từ thiết bị đầu cuối. Cảm ơn rất nhiều cho thông tin đó.
Juraj.Lorinc

3

Bạn có thể sử dụng CopyQ cho việc này. Từ trang web:

Trình quản lý Clipboard với các tính năng nâng cao

  • CopyQ là trình quản lý clipboard với lịch sử có thể tìm kiếm và chỉnh sửa.
  • Hỗ trợ Linux và Windows.
  • Hỗ trợ thử nghiệm cho OS X 10.9+.
  • Lưu trữ văn bản, HTML, hình ảnh và bất kỳ định dạng tùy chỉnh khác.
  • Giao diện dòng lệnh và kịch bản nâng cao.

Để sao chép tệp văn bản:

copyq action "cat /tmp/file.txt" "" && copyq select 0

Để sao chép một hình ảnh (bạn cần chỉ ra loại MIME):

copyq write image/png - < file.png && copyq select 0

Để sao chép tệp dữ liệu (bạn cần chỉ ra loại MIME):

copyq write application/pdf - < file.pdf && copyq select 0

Kiểm tra wiki của họ để biết thêm tài liệu và ví dụ sử dụng .

Bạn có thể cài đặt nó thông qua ppa: noobslab / chỉ số PPA hoặc bằng cách tải xuống thủ công .debcác tệp được đóng gói sẵn ổn định mới nhất từ phần Tải xuống của dự án .


1
Ppa không cập nhật, ít nhất là cho Ubuntu 16.04, tốt hơn là tải xuống trực tiếp từ trang GitHub của CopyQ .
Nicolai

3

Nếu bạn chỉ muốn sao chép một số văn bản vào clipboard:

echo -n "some-text" | xclip -selection clipboard


2

Bánh ngọt

Một trình quản lý clipboard mới với hỗ trợ Indicator Applet đã được phát hành gần đây (mặc dù chưa có trong kho lưu trữ). Ngoài việc theo dõi lịch sử bảng tạm văn bản, nó cũng sẽ ghi lại và duy trì các mục trong bảng dữ liệu (Tệp, Thư mục, v.v.) có thể hữu ích nếu bạn thao tác nhiều tệp qua môi trường GUI / Clipboard.

văn bản thay thế

Bạn có thể thêm PPA sau :ppa:hel-sheep/pastie


Cảm ơn lời đề nghị của Marco, nhưng tôi không có nhu cầu về trình quản lý clipboard. Thỉnh thoảng tôi sẽ dán một số văn bản tạm thời vào một tệp văn bản, nhưng tôi thực sự thấy rằng một "trình quản lý lịch sử" làm mọi thứ chậm lại (nhưng đó chỉ là tôi) .. Tôi thực sự sau một công cụ dòng lệnh có thể trích xuất / lưu trữ có chọn lọc một định dạng cụ thể từ / đến clipboad .. Tôi giả sử bảng tạm của Ubuntu giống với Windows (Tôi sẽ bị choáng nếu nó khác biệt đáng kể, vì yêu cầu của người dùng là giống nhau trên mọi nền tảng) ... Tôi ' m chắc chắn ai đó sẽ tìm thấy đề nghị của bạn hữu ích.
Peter.O


1

Làm thế nào về cài đặt daemon GPaste , một applet quản lý clipboard của giao diện với giao diện DBus:

  • GPaste là bộ quản lý clipboard cho Gnome được viết bằng Vala
  • Giao diện cài đặt GPaste đã được cập nhật để phù hợp hơn với Gnome gần đây
  • Daemon giờ hoàn toàn bình đẳng (không bỏ phiếu, ít tiêu thụ năng lượng hơn)
  • GPasteClipboard giờ đây có tín hiệu thay đổi chủ sở hữu của người dùng, tương tự như tín hiệu của GtkClipboard
  • Cài đặt mới để đặt lượng bộ nhớ tối đa được sử dụng bởi dữ liệu trong lịch sử
  • Chế độ FIFO đã bị loại bỏ (thiếu thiết kế)
  • Làm sạch mã và hiện đại hóa
  • g_paste_history_add hiện đã được chuyển đầy đủ
  • g_paste_keybinder_add_keybinding hiện đã được chuyển đầy đủ

Cài đặt:

Để cài đặt nó trong Ubuntu 13.10 , 13.04 , 12.10 hoặc 12.04 , hãy sử dụng các lệnh bên dưới:

sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-gpaste

Hoặc cài đặt gpastequa synaptic package manager(và cả gnome-shell-extensions-gpastenếu bạn sử dụng Gnome-Shell).

Một lựa chọn khác là cài đặt thông qua software-center.

nhập mô tả hình ảnh ở đây


1

Tôi đang cố gắng phát triển một giải pháp tốt hơn không phải là trình quản lý clipboard, được tìm thấy tại https://github.com/baitisj/copypasta . Nó chưa xử lý RTF và HTML khá chính xác và các hình ảnh lớn gây ra sự cố, nhưng hãy thoải mái rẽ nhánh và gửi các bản vá.


1

Đối với định dạng RTF tôi sử dụng quy trình này: Tôi sao chép văn bản vào bảng tạm trong ứng dụng. Nếu tôi không chắc đó là rtf hay là gì, tôi sử dụng lệnh này để xác minh:

xclip -selection clipboard -o -t TARGETS

Khi nó in ra một cái gì đó như thế này:

MỤC TIÊU

văn bản / rtf

văn bản / richtext

Vì vậy, tôi không thể cưỡng lại để thốt lên khá to: "Trời ạ, thật là tài giỏi! Chúa phù hộ linux!" Sau lời cầu nguyện bắn đó, điều hiển nhiên sau đây:

xclip  -selection clipboard -o -t text/rtf > mypreciousRTFcontent.rtf

Sau đó, tôi xử lý tất cả trong libreoffice và gửi cho tất cả bạn bè của tôi dưới dạng thư rác.

:-)


0

Yo ya gnomers, đó là những gì bạn nhận được khi sử dụng CORBA-crap.
Không có gì tốt hơn cho phần mềm yar hơn là sử dụng các công cụ không được cài đặt theo mặc định.

Nếu bạn đã sử dụng một môi trường máy tính để bàn thích hợp, chẳng hạn như KDE-plasma, bạn sẽ không gặp phải vấn đề đó, vì bạn chỉ có thể sử dụng dbus, từ bất kỳ phần mềm nào bạn thích, ví dụ như bảng điều khiển:

qdbus org.kde.klipper /klipper setClipboardContents "NiHao"
qdbus org.kde.klipper /klipper getClipboardContents

Cá nhân, tôi thực sự kết nối trực tiếp với dbus với C #, điều đó có nghĩa là tôi không cần qdbus.
Điều đó có lẽ không có ích gì cho bạn, vì bạn không có klipper, nhưng tôi nghĩ dù sao tôi cũng đề cập đến nó, chỉ để làm phiền bạn với cách nó được thực hiện đúng.

PS: Đừng sao chép mã C #, Task.Result có thể bế tắc.

private static async System.Threading.Tasks.Task<string> GetClipboardContentsAsync()
{
    string clipboardContents = null;

    Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
    string service = "org.kde.klipper";

    using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
    {
        await connection.ConnectAsync();

        IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);

        clipboardContents = await klipper.getClipboardContentsAsync();
    } // End Using connection 

    return clipboardContents;
}


private static string GetClipboardContents()
{
    return GetClipboardContentsAsync().Result;
}


private static async System.Threading.Tasks.Task SetClipboardContentsAsync(string text)
{
    Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
    string service = "org.kde.klipper";

    using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
    {
        await connection.ConnectAsync();

        IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);

        await klipper.setClipboardContentsAsync(text);
    } // End using connection 

}


private static void SetClipboardContents(string text)
{
    SetClipboardContentsAsync(text).Wait();
}

-1

Có, có. Hãy thử tmuxcái nào cao cấp hơn screen. Để cài đặt tmux, nhập cái này vào terminal:

sudo apt-get install tmux

Cũng thử gpm. Các lệnh gpmtmuxcó thể là một sự kết hợp tốt ...


2
Màn hình là trình giả lập nhiều thiết bị đầu cuối không phải là trình quản lý clipboard.
Marco Ceppi

Có vẻ như màn hìnhtmux chỉ hoạt động ở cấp thiết bị đầu cuối (Tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về "clipboard" trong một trong các tài liệu thông tin của họ ) ... Điều tôi đang tìm kiếm là một tiện ích sao chép và dán bảng tạm trên toàn hệ thống ... Có lẽ tôi không nên sử dụng thiết bị đầu cuối làm thẻ ... Loại tiện ích tôi muốn sẽ có thể đọc / ghi thông qua std-in / std-out hoặc file-in / file-out và xử lý Unicode / Các định dạng clipboard phong phú văn bản / hình ảnh / vv ...
Peter.O

Tôi vừa tìm thấy một tài liệu tham khảo về stackoverflow ... gpmdành cho "clipboard" của thiết bị đầu cuối không phải là X và GNU screencũng có "clipboard" riêng của mình ... Tôi hiểu ngay bây giờ tại sao bạn lại đề cập đến chúng ... Đây là thông tin tuyệt vời và nó đã đưa tôi đến một sự hiểu biết sâu sắc hơn về những gì diễn ra sau hậu trường ... Tôi sẽ gắn bó với "hệ thống lựa chọn" cơ bản của Xterm (clipboad) bây giờ .. "Bảng tạm" của Linux dường như rất khác với Windows, rằng những gì tôi đang tìm kiếm có thể được thực hiện theo một cách rất khác ở đây .. +1 :)
Peter.O
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.