Utilitas salin dan tempel clipboard baris perintah?


127

Di Windows saya menggunakan utilitas copy-and-paste clipboard baris perintah ...

  • pclip.exe dan gclip.exe

Ini adalah port UnixUtils untuk Windows (tetapi mereka hanya menangani teks biasa). Ada beberapa utilitas Windows asli lainnya yang dapat menulis / mengekstrak format apa pun.

Saya sudah mencari yang serupa di Synaptic Package Manager, tetapi saya tidak dapat menemukan apa pun.

Apakah ada sesuatu di sana, yang saya lewatkan? ... atau mungkin ini tersedia di skrip Bash?

Jenis utilitas yang saya inginkan akan dapat membaca / menulis melalui std-in / std-out atau file-in / file-out, dan menangani Unicode, Rich Text Format, gambar, dll format clipboard ...

NB: Saya tidak mengejar manajer clipboard.


Lihat pertanyaan terkait dari unix.SE: unix.stackexchange.com/questions/30093/…
landroni


vim[enter]"+P : 3 (jalankan vim dan kemudian dari " register - yaitu clipboard sistem - tempel teks) . Maka Anda memiliki (salah satu) editor teks terbaik di ujung jari Anda, sehingga Anda bisa :w filename. Juga, saya selalu menjalankan vim di tmux yang berarti bahwa jika saya perlu menyalin sedikit teks ke terminal, saya hanya memilih (dengan vatau Vuntuk pemilihan baris) dan kemudian "+y(yang menarik atau menyalin ke clipboard), maka saya membuat yang baru tmux pane dan dapat <ctrl> + <shift> + v untuk menempel. Selain itu, kadang-kadang saya akan menggunakan xsel -b > filenamejika saya perlu menulis clipboard ke file. Cheers ^ u ^
dylnmc

Jawaban:


131

Saya menggunakan xsel Instal xsel , tetapi saya hanya menggunakannya dengan teks biasa dan teks unik.


xseldapat menyalin dan menempel ke tiga "papan klip" yang berbeda. Secara default, ia menggunakan pemilihan utama Sistem X Window , yang pada dasarnya adalah apa pun yang saat ini dalam seleksi. Sistem X Window juga memiliki pilihan sekunder (yang tidak banyak digunakan), dan pilihan clipboard . Anda mungkin mencari pemilihan clipboard , karena itulah yang digunakan oleh lingkungan desktop (mis. Gnome, KDE, XFCE) untuk clipboardnya. Untuk menggunakannya dengan xsel:

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

1
Adi ... xsel tampaknya (?) Hanya berbasis teks (seperti yang Anda sebutkan), jadi saya akan mencari utilitas yang lebih komprehensif ... Namun, sangat menarik bagi saya untuk membaca dokumentasi informasinya ... Saya tahu bahwa mengklik tengah tetikus (di Terminal) akan menempelkan teks yang saat ini dipilih ke dalam baris perintah, tetapi saya tidak menyadari bahwa fitur ini berlaku untuk sebagian besar aplikasi X ... Pilihan teks terbaru dapat berupa disisipkan melalui klik tengah (tetapi beberapa aplikasi tampaknya menimpanya) .. Dua clipboard! .. Sangat praktis .... Saya harus membaca lebih lanjut tentang buffer pilihan-X ke-3.
Peter.O

xsel bekerja dengan teks Unicode. Anda dapat membaca lebih lanjut tentang papan klip X pada halaman wiki freedesktop : freedesktop.org/wiki/Spesifikasi/ClipboardsWiki .
Adi Roiban

Saya harus mencari tahu info baru ini .. 3 clipboard! PRIMARY, SECONDARY, CLIPBOARD ... Ini sangat berbeda dengan yang biasa saya gunakan di windows ... Yang ke-3 "CLIPBOARD" nampaknya sama dengan clipboard Windows / Mac ... tapi ini sangat terlambat di sini .. Saya akan kembali ke sini besok ... (Inersting, tetapi terlalu banyak untuk dibaca sekarang ..)
Peter.O

Terima kasih ... xselmelakukan pekerjaan (untuk teks) ... Sesuatu mungkin muncul untuk format lain.
Peter.O

6
xsel -bkependekan dari xsel --clipboard.
Andrei Duma

85

xclip Instal xclip mungkin salah satu pilihan Anda.

cat samples.sh | xclip -sel clip

Anda juga dapat mengaturnya di file .bashrc menggunakan alias.

alias clipboard='xclip -sel clip'

Kunci untuk menempelkan data biner ke file xclipadalah untuk mengetahui Jenis Media apa yang Anda miliki di clipboard. Untuk PNG Anda dapat:

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

Jadi sekarang ~/Dropbox/.mybashrc;) Anda dapat menambahkan alias (clipboard2photo) untuk dengan mudah menempel ke file gambar (mungkin suatu hari nanti kita akan memilikinya di Nautilus ).


Ini terlihat bagus, tapi saya belum punya kesempatan untuk memeriksanya, namun ... Saya akan melakukannya secepatnya ...
Peter.O

xclip juga hanya menangani pemilihan teks.
Steve Beattie

2
Juga, perintahnya bisa sesingkatxclip -se c
Jeromy Anglim

1
Saya tidak mengerti mengapa ini tidak ada di halaman manual
Sergiy Kolodyazhnyy

1
Saya mendapatkan ini ketika mencoba menempelkan gambar ke file Kesalahan: gambar target / png tidak tersedia
Emilio Nicolás

12

Parcellite

Saya telah menggunakan parcellite selama bertahun-tahun sebagai manajer clipboard. Ini berjalan di Area Pemberitahuan dan menawarkan banyak opsi untuk mengelola Pilihan Utama dan Clipboard freedesktop.org standar.

Ikon Baki

Ini jawaban saya untuk mengelola item clipboard.

Preferensi


Ini terlihat seperti panel-app yang bagus .. "Actions" itu praktis ... tapi sayangnya itu bukan jenis alat yang saya cari .. Saya telah mengulangi pertanyaan saya untuk memasukkan beberapa info yang lebih spesifik ... Mungkin hal persis yang saya kejar adalah skrip Python yang tidak jelas, atau sejenisnya ... Ada beberapa utilitas khusus Windows asli yang sangat bagus yang tersedia, jadi saya pikir yang setara akan mengambang di suatu tempat di Ubuntu / Dunia Linux ...
Peter.O

FYI, Parcellite memiliki fitur keren - riwayat teks yang disalin. Untuk mengaktifkan tempel otomatis dari dialog riwayat, Anda juga harusinstall xdotool
Noam Manos

10

Saya baru-baru datang di alat xclip-copyfile, xclip-cutfiledan xclip-pastefile(paket xclip). Alat-alat ini memungkinkan Anda untuk menyalin / memotong / menempelkan seluruh file melalui baris perintah.

Anda dapat melihat halaman manual mereka di sini.


10

clipit ( http://clipit.rspwn.com/ ) adalah manajer clipboard untuk gtk yang memungkinkan perpipaan teks dari commandline:

ls | clipit;

Sunting: Saat ini, tidak ada apa pun di situs web resmi ClipIt tetapi Anda bisa mendapatkannya dari GitHub


Saya menggunakan ClipIt untuk alasan lain dan tidak tahu itu bisa mendapatkan data dari terminal. Terima kasih banyak untuk info itu.
Juraj.Lorinc

3

Anda dapat menggunakan CopyQ untuk ini. Dari situs web:

Manajer Clipboard dengan fitur-fitur canggih

  • CopyQ adalah pengelola papan klip dengan riwayat yang dapat dicari dan diedit.
  • Mendukung Linux dan Windows.
  • Dukungan eksperimental untuk OS X 10.9+.
  • Simpan teks, HTML, gambar, dan format khusus lainnya.
  • Antarmuka baris perintah dan skrip lanjutan.

Untuk menyalin file teks:

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

Untuk menyalin gambar (Anda perlu menunjukkan jenis MIME):

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

Untuk menyalin file data (Anda perlu menunjukkan tipe MIME):

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

Periksa wiki mereka untuk lebih banyak dokumentasi dan contoh penggunaan .

Anda dapat menginstalnya baik melalui ppa: noobslab / indicator PPA atau dengan secara manual mengunduh .debfile prabayar stabil terbaru dari bagian Unduhan proyek .


1
Ppa tidak mutakhir, setidaknya untuk Ubuntu 16.04, lebih baik untuk mengunduhnya dari rilis situs GitHub dari CopyQ secara langsung.
Nicolai

3

Jika Anda hanya ingin menyalin beberapa teks ke clipboard:

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


2

Pastie

Manajer clipboard baru dengan dukungan Indikator Applet baru-baru ini dirilis (meskipun belum ada dalam arsip). Selain melacak riwayat clipboard teks juga akan menangkap dan bertahan entri clipboard data juga (File, Folder, dll) yang mungkin berguna jika Anda banyak memanipulasi file melalui lingkungan GUI / Clipboard.

teks alternatif

Anda dapat menambahkan PPA berikut :ppa:hel-sheep/pastie


Terima kasih atas sarannya, Marco, tetapi saya tidak membutuhkan manajer clipboard. Kadang-kadang saya akan menempelkan beberapa teks sementara ke file teks, tapi saya benar-benar menemukan bahwa "manajer sejarah" memperlambat segalanya (tapi itu hanya saya) .. Saya benar-benar setelah alat baris perintah yang secara selektif dapat mengekstrak / menyimpan a tertentu Format dari / ke clipboad yang .. saya mengasumsikan clipboard Ubuntu mirip dengan Windows satu (aku akan terkejut jika itu berbeda secara signifikan, karena pengguna persyaratan yang sama pada platform apapun) ... saya Saya yakin seseorang akan menganggap saran Anda bermanfaat.
Peter.O


1

Bagaimana dengan pengaturan daemon GPaste , applet daemon clipboard manajemen dengan antarmuka DBus:

  • GPaste adalah rangkaian manajemen clipboard untuk GNOME yang ditulis dalam Vala
  • Tampilan pengaturan GPaste telah diperbarui agar lebih sesuai dengan GNOME terbaru
  • Daemon sekarang sepenuhnya merata (tidak ada lagi polling, konsumsi daya lebih sedikit)
  • GPasteClipboard sekarang memiliki sinyal "perubahan pemilik" yang mirip dengan sinyal GtkClipboard
  • Pengaturan baru untuk mengatur jumlah maksimum memori yang digunakan oleh data dalam riwayat
  • Mode FIFO telah jatuh (kurang desain)
  • Pembersihan kode dan modernisasi
  • g_paste_history_add sekarang ditransfer penuh
  • g_paste_keybinder_add_keybinding sekarang ditransfer penuh

Instalasi:

Untuk menginstalnya di Ubuntu 13.10 , 13.04 , 12.10 atau 12.04 , gunakan perintah di bawah ini:

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

Atau instal gpastemelalui synaptic package manager(dan juga gnome-shell-extensions-gpastejika Anda menggunakan Gnome-Shell).

Pilihan lain adalah instalasi melalui software-center.

masukkan deskripsi gambar di sini


1

Saya mencoba mengembangkan solusi yang lebih baik yang bukan manajer clipboard, ditemukan di https://github.com/baitisj/copypasta . Ini belum menangani RTF dan HTML dengan benar, dan gambar besar menimbulkan masalah, tetapi merasa ragu untuk mengirim dan mengirimkan tambalan.


1

Untuk format RTF saya menggunakan prosedur ini: Saya menyalin teks ke clipboard dalam aplikasi. Jika saya tidak yakin apakah itu rtf atau apa, saya menggunakan perintah ini untuk memverifikasi:

xclip -selection clipboard -o -t TARGETS

Ketika mencetak sesuatu seperti ini:

SASARAN

teks / rtf

teks / teks kaya

Jadi saya tidak bisa menolak untuk berseru dengan keras: "Wah, itu tulus! Tuhan memberkati linux!" Setelah doa tembakan itu, hanya hal yang jelas berikut:

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

Lalu saya memproses semuanya di libreoffice dan mengirim ke semua teman saya sebagai spam.

:-)


0

Yo ya gnomers, itulah yang Anda dapatkan dari menggunakan CORBA-omong kosong.
Tidak ada yang lebih baik untuk perangkat lunak yar daripada menggunakan alat yang tidak diinstal secara default.

Seandainya Anda menggunakan lingkungan desktop yang tepat, seperti KDE-plasma, Anda tidak akan memiliki masalah itu, karena Anda bisa menggunakan dbus, dari perangkat lunak apa pun yang Anda suka, mis. Konsol:

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

Secara pribadi, saya sebenarnya terhubung ke dbus langsung dengan C #, yang berarti saya tidak perlu qdbus.
Itu mungkin tidak ada gunanya untukmu, karena kamu tidak punya klipper, tapi aku pikir aku akan menyebutkannya, hanya untuk mengganggu kamu dengan bagaimana hal itu dilakukan dengan benar.

PS: Jangan menyalin kode C # itu, Task.Result mungkin menemui jalan buntu.

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

Ya ada. Coba tmuxyang lebih maju daripada screen. Untuk menginstal tmux, ketikkan ini di terminal:

sudo apt-get install tmux

Coba juga gpm. Perintah gpmdan tmuxmungkin kombinasi yang baik ...


2
Layar adalah emulator multi-terminal bukan manajer clipboard.
Marco Ceppi

Tampaknya layar dan tmux hanya berfungsi di level terminal (saya tidak dapat menemukan referensi ke "clipboard" di salah satu dari dokumentasi info mereka ) ... Apa yang saya cari adalah utilitas copy dan paste clipboard seluruh sistem ... Saya mungkin seharusnya tidak menggunakan terminal sebagai tanda ... Jenis utilitas yang saya inginkan akan dapat membaca / menulis melalui std-in / std-out atau file-in / file-out, dan menangani Unicode / Rich-text / Picture / etc clipboard format ...
Peter.O

Saya baru saja menemukan referensi tentang stackoverflow ... gpmadalah untuk terminal non-X "clipboard", dan GNU screenmemiliki "clipboard" sendiri juga ... Saya mengerti sekarang mengapa Anda menyebutkannya ... Ini adalah info hebat, dan itu telah membawa saya ke pemahaman yang lebih dalam tentang apa yang terjadi di balik layar ... Saya akan tetap berpegang pada "sistem seleksi" Xterm dasar (clipboad) untuk saat ini .. "Clipboard" Linux tampaknya sangat berbeda dengan Windows, bahwa apa yang saya cari dapat dilakukan dengan cara yang sangat berbeda di sini .. +1 :)
Peter.O
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.