Apakah mungkin untuk mengakses Clipboard sebagai file dari baris perintah?

4

Ketika sesuatu disalin ke clipboard, apakah itu tersedia di mana saja sebagai file yang dapat diedit? Saya akan menganggap itu ditulis di suatu tempat bahkan jika itu hanya file sementara - meskipun saya kemungkinan salah.

Saya ingin dapat dengan mudah mengedit konten clipboard, menggunakan editor seperti Vim, lalu menyimpannya kembali ke Clipboard.

DKatri
sumber
Menulis konten tempel ke file dalam teks biasa akan menjadi risiko keamanan yang cukup besar di mana data akan meninggalkan satu aplikasi dan pergi ke yang lain. Seperti yang Anda lihat di jawaban, ada cara untuk mengaksesnya, tetapi membuangnya ke file setiap kali perubahan akan menjadi definisi yang baik tentang malware dan spyware TBH - terutama jika file itu dapat dibaca oleh akun non admin / non root . Apa yang Anda minta itu cukup logis dan saya telah melihatnya diimplementasikan dalam beberapa cara.
bmike
@ bmike Poin bagus tentang aksesibilitas sistem secara temporer dari file temp. Pikir itu bisa diperbaiki, tetapi saya perlu akses ke Mac terlebih dahulu untuk menguji skrip yang ada dalam pikiran saya :-)
nohillside
Milik Anda tidak terlalu buruk karena orang tersebut harus memicu cuplikan @nohillside - Anda benar bahwa menyemprotkan /var/folders atau ruang temp pengguna terbatas lainnya alih-alih temp global akan sangat mudah. Otomatisasi "kapan pun sesuatu disalin" adalah di mana masalah sebenarnya akan berkurang jika risikonya tidak dipahami atau dikelola.
bmike

Jawaban:

6

Anda dapat membaca dan menulis ke Papan Tulis dengan perintah Terminal pbcopy dan pbpaste. Jadi untuk mengeditnya Anda bisa menggunakan sesuatu seperti

pbpaste > /tmp/clip.txt && vi /tmp/clip.txt && pbcopy < /tmp/clip.txt

Jika Anda sering membutuhkannya, fungsi shell mungkin lebih cocok. Anda dapat mendefinisikan satu dengan memasukkan yang berikut ke dalam .bashrc

pbedit() {
    local _t=$(mktemp)
    chmod 600 "$_t"

    pbpaste > "$_t"
    ${EDITOR:-vi} "$_t"
    pbcopy < "$_t"

    rm -f "$_t"
}

Ini mencoba untuk meminimalkan risiko orang lain mengakses file sementara saat mengedit (tetapi tidak dapat mencegah siapa pun yang memiliki akses admin atau root).

benwiggy
sumber
Meskipun OP tidak pernah menyatakan apa isi clipboard itu, jawaban ini hanya relevan dengan teks dan bukan data biner yang mungkin ada di clipboard.
user3439894
1
Benar, meskipun data biner biasanya tidak mudah diedit dengan vim. Saya berani mengatakan ada beberapa yang menggulung seperti itu.
benwiggy
Ini luar biasa. Hanya ingat bahwa implementasi papan tulis pada macOS adalah sebagai server yang dapat berisi banyak item, biner dan teks dan item teks yang pernah dapat memiliki banyak interpretasi ketika Unicode atau teks kaya disimpan. Untuk sebagian besar kasus, anggap Anda memiliki satu item dan teksnya benar. developer.apple.com/documentation/appkit/…
bmike