Apa yang setara dengan baris perintah menyalin file ke clipboard?

89

Apa yang setara dengan baris perintah dengan menekan CTRL + C di atas file di manajer file sehingga file (bukan nama file) disalin ke clipboard?

Situasi di mana ini bisa bermanfaat dan cepat, misalnya, adalah ketika Anda ingin menyalin ke clipboard file dari direktori Anda di terminal untuk dengan cepat menempelkan file di direktori Anda berada di manajer file. Ada yang lain.

Strapakowsky
sumber
Ini benar-benar tidak terlihat seperti duplikat bagi saya. Satu jawaban adalah tentang copy paste umum secara umum, dan ini adalah tentang menyalin subjek file tertentu
Ulysse BN

Jawaban:

104

Ketika Anda menekan Ctrl-C di atas file di manajer file, konten file TIDAK disalin ke clipboard. Tes sederhana: pilih file di manajer file, tekan Ctrl-C, buka editor teks, tekan Ctrl-V. Hasilnya bukan isi file tetapi path lengkapnya.

Pada kenyataannya situasinya sedikit lebih rumit karena Anda tidak dapat melakukan yang sebaliknya - salin daftar nama file dari editor teks dan tempelkan ke manajer file.

Untuk menyalin beberapa data dari baris perintah ke papan klip X11 Anda dapat menggunakan xclipperintah, yang dapat diinstal bersama

sudo apt-get install xclip

untuk menyalin konten file atau output dari beberapa perintah untuk digunakan clipboard

cat ./myfile.txt|xclip -i

teks dapat kemudian ditempel di suatu tempat menggunakan tombol tengah mouse (ini disebut "buffer pemilihan utama").

Jika Anda ingin menyalin data ke pilihan "clipboard", sehingga dapat disisipkan ke dalam aplikasi dengan Ctrl-V, Anda dapat melakukan

cat ./myfile.txt|xclip -i -selection clipboard

Agar dapat menyalin file dari baris perintah dan menempelkannya di manajer file, Anda harus menentukan "target atom" yang benar sehingga manajer file mengenali data di clipboard, dan juga menyediakan data dalam format yang benar - untungnya, dalam hal menyalin file dalam file manager itu hanya daftar nama file absolut, masing-masing pada baris baru, sesuatu yang mudah dihasilkan menggunakan findperintah:

find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

(setidaknya ini bekerja untuk saya di KDE). Sekarang Anda dapat membungkus ke dalam skrip kecil yang dapat Anda panggil, katakan cb,:

#!/bin/sh
xclip -i -selection clipboard -t text/uri-list

kemudian Anda memasukkannya ~/bin, mengatur bit yang dapat dieksekusi di atasnya dan menggunakannya seperti ini:

find ${PWD} -name "*.txt"| cb

Bagus bukan?

Sergey
sumber
Bagus, tetapi hanya berfungsi untuk teks dan itu bukan file sebenarnya, hanya teks. Misalkan Anda memiliki file jpg?
Strapakowsky
Ya, saya tahu efek ini bahwa jika Anda menyalin file dari manajer file jika Anda menempelkannya di folder lain, Anda menempelkan file tersebut, tetapi jika Anda menempel di editor teks Anda mendapatkan path file.
Strapakowsky
Dalam hal file biner (jpg dll.) Semuanya jauh lebih rumit. Di sini saya mengajukan pertanyaan yang terinspirasi oleh pertanyaan Anda - unix.stackexchange.com/questions/53503/... - baca tentang "atom target" dan yang lainnya
Sergey
1
Saya mendengar bahwa xclip juga mendukung penyalinan file dengan xclip-copyfiledan xclip-pastefile. Saya belum benar-benar menggunakannya, tetapi mungkin itu solusi.
Gladen
Wow, @Gladen, saya pikir Anda perlu mempostingnya sebagai jawaban terpisah. Meskipun tidak berfungsi saat menggunakan xclip-copyfiledan kemudian xclip-pastefile, tetapi tampaknya tidak bekerja dengan manajer file Ubuntu ...
Sergey
9

Saya mendengar bahwa xclip juga mendukung penyalinan file dengan xclip-copyfiledan xclip-pastefile. Saya belum benar-benar menggunakannya, tetapi mungkin itu solusi.

Gladen
sumber
Itu hanya menyalin nama file, bukan isi file. Lihatlah contoh halaman manual, yaitu$ man xclip-copyfile
Craig
0

Mac OS memiliki pbcopysintaks yang lebih mudah:

pbcopy < ~/.ssh/id_rsa.pub 

atau

cat ~/.ssh/id_rsa.pub  | pbcopy

Untuk mensimulasikan pbcopydi Ubuntu dengan xclip(diinstal via sudo apt install xclip):

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
Penghe Geng
sumber