Salin konten file ke clipboard tanpa menampilkan kontennya

67

Cara menyalin konten file di UNIX tanpa menampilkan konten file. Saya tidak ingin kucing atau vi untuk melihat isinya.

Saya ingin menyalinnya ke clipboard sehingga saya bisa menempelkannya kembali di notepad windows saya.

Saya tidak dapat menyalin file dari server itu ke yang lain karena batasan akses.

Web Nash
sumber
Anda tidak dapat mengakses konten file tanpa membukanya ...
123
OK, jika demikian apakah ada cara mudah untuk menyalin file yang sangat besar. Saya mendapat 1000 baris.
Web Nash
jika file Anda besar, clipboard akan gagal. Ketika batasan akses mengatakan, bahwa Anda tidak dapat membaca file, Anda tentu saja tersesat. Jika Anda tidak dapat menyalin file karena Anda tidak dapat menulis file, Anda harus bertanya pada diri sendiri, apakah ada tujuan lain yang dapat Anda tulis.
ikrabbe
Sangat besar. 1000 baris. Pilih salah satu.
123
2
Apa itu Windows Notepad BTW?
Stéphane Chazelas

Jawaban:

77

X11

Jika menggunakan X11 (GUI paling umum pada sistem berbasis Unix atau Linux tradisional), untuk menyalin konten file ke pilihan X11 CLIPBOARD tanpa menampilkannya , Anda dapat menggunakan utilitas xclipatau xsel.

xclip -sel c < file

Atau:

xsel -b < file

Untuk menyimpan konten filesebagai pilihan CLIPBOARD X11.

Perhatikan bahwa itu harus disimpan menggunakan pengkodean UTF-8 atau menyisipkan tidak akan berfungsi dengan baik. Jika filedikodekan menggunakan set karakter lain, Anda harus mengonversi ke UTF-8 terlebih dahulu, seperti:

iconv -f latin1 -t utf8 | xclip -sel c

Untuk file yang disandikan dalam bahasa latin1 / iso8859-1 .

Untuk menyimpannya sebagai CUT_BUFFER (itu masih dipertanyakan oleh beberapa aplikasi seperti xtermketika tidak ada yang mengklaim pilihan CLIPBOARD atau PRIMARY X dan tidak perlu memiliki proses yang berjalan untuk menyajikannya seperti untuk pilihan), meskipun Anda mungkin tidak mau atau perlu menggunakannya saat ini:

xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"

(menghapus karakter baris baru dari file).

Layar GNU

GNU screenmemiliki readbufperintah untuk menghirup isi file ke dalam buffer copy-paste-nya sendiri (yang Anda tempel dengan ^A]). Begitu:

screen -X readbuf file

OS Apple / X

Padahal Apple OS / X dapat menggunakan X11. Ini tidak secara default kecuali Anda menjalankan aplikasi X11. Anda dapat menggunakan xclipatau di xselsana karena OS / X harus menyinkronkan pemilihan X11 CLIPBOARD dengan buffer papan tulis OS / X, tetapi itu akan menjadi sedikit sia-sia untuk memulai server X11 hanya untuk itu.

Pada OS / X, Anda dapat menggunakan pbcopyperintah untuk menyimpan konten sewenang-wenang dalam karton buffer:

pbcopy < file

(Pengkodean karakter file diharapkan menjadi lokal).

Kerang

Sebagian besar cangkang memiliki buffer salin-tempel sendiri. Dalam mode emacs, operasi potong dan salin menyimpan teks yang disalin / potong ke tumpukan yang Anda tarik / tempel Ctrl-Y, dan daur ulang denganAlt+Y

zsh CUTBUFFER / pembunuhan

Dalam zsh, tumpukan disimpan dalam $killringarray dan bagian atas tumpukan dalam $CUTBUFFERvariabel meskipun variabel-variabel tersebut hanya tersedia dari widget Zsh Line Editor (zle) dan beberapa widget khusus adalah cara yang lebih disukai untuk memanipulasi mereka.

Karena itu hanya tersedia melalui ZLE, melakukannya dengan perintah agak berbelit-belit:

zmodload zsh/mapfile
zle-line-init() {
  if [ -n "$FILE_TO_COPY" ]; then
    zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
    unset FILE_TO_COPY
  fi
}
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A       

The zle-line-initwidget khusus dijalankan sekali pada awal setiap prompt perintah baru. Artinya adalah bahwa file hanya akan disalin pada prompt berikutnya. Misalnya, jika Anda melakukannya:

file-copy file; sleep 2

File hanya akan disalin setelah 2 detik itu.

Stéphane Chazelas
sumber
3
Saya menghadapi kesalahan ini:Error: Can't open display: (null)
Marcelo Filho
Masalah yang sama di sini di fedora 7
Michael Pacheco
@ MarsceloFilho, xclipdan xselmerupakan utilitas X11, mereka memanipulasi pilihan X11, jadi hanya dapat digunakan di lingkungan X11 di mana $DISPLAYdiatur.
Stéphane Chazelas
2

Mungkin Anda ingin bertanya ini . Tetapi file apa pun yang ingin Anda baca harus dibuka oleh beberapa panggilan sistem. Jika Anda tidak memiliki akses ke file, Anda tidak dapat membacanya. Itu ide akses terbatas.

ikrabbe
sumber
Jadi, apa masalah Anda yang sebenarnya? Jika Anda bisa membaca tetapi tidak bisa menyalin, Anda mungkin tidak bisa menulis. Tetapi ketika Anda ingin menyalin Anda harus menulis data di suatu tempat.
ikrabbe
Terima kasih!!! Anda menyelamatkan hidup saya)
Alena Kastsiukavets
0

Menggunakan X11:

xclip -o > file

Jika Anda dapat membaca file, masalah akses adalah tentang server tujuan.

tjombka
sumber