Menyalin file dari baris perintah ke clipboard

18

Dalam pengelola file GUI dimungkinkan untuk memilih beberapa file, tekan Ctrl-C (yang seharusnya merupakan salinan datang info tentang file ke clipboard), lalu navigasikan ke folder lain dan tekan Ctrl-V, yang kemudian akan menyalin file ke dalam direktori.

Sebagai percobaan, setelah menyalin file di manajer file, dimungkinkan untuk beralih ke editor teks - menekan Ctrl-V di sana menempelkan daftar nama file absolut. Proses sebaliknya (menyalin daftar file dari editor teks dan menempelkannya ke manajer file) tidak berfungsi, yang diduga karena atom target yang berbeda

Tujuan dari latihan ini adalah untuk dapat menyalin beberapa file dari baris perintah, misalnya

find ${PWD} -name "*.txt" | xclip <magic parameters>

kemudian beralih ke manajer file dan salin semuanya ke direktori menggunakan File-> Tempel.

Jadi, pertanyaannya adalah: Parameter apa dari xclip(atau program lain) yang perlu saya tentukan sehingga manajer file mengenali seleksi sebagai daftar file dan mengaktifkan item menu Tempelnya?

Atau, apakah ada alat tingkat rendah yang memungkinkan untuk memeriksa isi seleksi X dan melihat data apa yang saat ini dikandungnya?

Sergey
sumber

Jawaban:

12

Ya, pada dasarnya, Anda harus menawarkan pilihan CLIPBOARD juga

  • text/uri-list dengan konten yang sedang

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionatau x-special/gnome-copied-filesdengan konten copy\nfile://$path1\nfile://$path2\0ataucut\nfile://$path1\nfile://$path2...\0

Dengan xclipAnda dapat mencapai ini dengan sesuatu seperti

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

Saya juga menemukan perintah loliclip ini yang tampak menjanjikan, tetapi meskipun saya dapat mengambil nilai-nilai itu, saya tidak dapat menyimpannya dan meminta mereka untuk mengambilnya loliclipdengan pcmanfmsukses.

Anda juga harus dapat mengimplementasikannya dalam beberapa baris perl-tk.

Stéphane Chazelas
sumber
Ok, setelah beberapa kali mengutak-atik text/uri-listvarian bekerja untuk saya - Saya dapat menyalin hal-hal dari baris perintah dan menempelkan file ke file manager Dolphin. Bahkan tidak memerlukan file://awalan, yang membuat perintah untuk bekerja dengan baik find. Saya telah mengedit pertanyaan Anda untuk menambahkan perintah yang berfungsi untuk saya di KDE - adakah yang bisa mengujinya di Gnome atau di tempat lain?
Sergey
Terima kasih atas hasil editnya. Sepertinya file://tidak perlu dengan pcmanfmbaik (meskipun pcmanfm tidak memasukkannya sendiri). Saya kira beberapa karakter khusus (setidaknya LF) harus dikodekan oleh URI.
Stéphane Chazelas
Iya. Saya dapat mengonfirmasi bahwa Anda perlu menggunakan file:///new%0Alinefile yang berisi karakter baris baru, meskipun karakter lain (termasuk non-ASCII dalam pengkodean apa pun) tampaknya baik-baik saja (dengan setidaknya pcmanfm)
Stéphane Chazelas
1

kenapa tidak findlakukan saja untukmu?

find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &

EDIT: dari apa yang saya mengerti man xclip: hanya menangani teks, bukan file atau direktori.

h3rrmiller
sumber
Sebagian besar karena ini adalah percobaan, walaupun saya pikir "salin file ke clipboard sekarang, putuskan di mana Anda ingin menempelkannya nanti" akan menjadi cara yang berguna untuk melakukan sesuatu.
Sergey