Cara menyalin isi file di UNIX tanpa menampilkan isi file. Saya tidak ingin cat atau vi untuk melihat isinya.
Saya ingin menyalinnya ke clipboard sehingga saya dapat menempelkannya kembali di notepad windows saya.
Saya tidak dapat menyalin file dari server tersebut ke server lain karena pembatasan akses.
Jawaban yang Diterima:
X11
Jika menggunakan X11 (GUI paling umum pada sistem berbasis Unix atau Linux tradisional), untuk menyalin konten file ke pilihan X11 CLIPBOARD tanpa menampilkan itu, Anda dapat menggunakan xclip
atau xsel
utilitas.
xclip -sel c < file
Atau:
xsel -b < file
untuk menyimpan konten file
sebagai pilihan CLIPBOARD X11.
Untuk menyimpan output dari suatu perintah:
mycommand | xclip -sel c
mycommand | xsel -b
Perhatikan bahwa itu harus disimpan menggunakan pengkodean UTF-8 atau jika tidak, penempelan tidak akan berfungsi dengan benar. Jika file
dikodekan menggunakan set karakter lain, Anda harus mengonversi ke UTF-8 terlebih dahulu, seperti:
<file iconv -f latin1 -t utf8 | xclip -sel c
untuk file yang dikodekan dalam latin1 /iso8859-1 .
xsel
tidak bekerja dengan data biner (tidak menerima byte nol), tetapi xclip
tidak.
Untuk menyimpannya sebagai CUT_BUFFER (yang masih dipertanyakan oleh beberapa aplikasi seperti xterm
ketika tidak ada yang mengklaim pilihan CLIPBOARD atau PRIMARY X dan tidak perlu menjalankan proses untuk menyajikannya seperti untuk pilihan), meskipun Anda mungkin tidak ingin atau perlu menggunakannya saat ini:
xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
(menghapus karakter baris baru yang tertinggal dari file
).
Layar GNU
screen
GNU memiliki readbuf
perintah untuk menyeruput konten file ke dalam buffer salin-tempelnya sendiri (yang Anda tempel dengan ^A]
). Jadi:
screen -X readbuf file
Apple OS/X
Padahal Apple OS/X bisa menggunakan X11. Itu tidak secara default kecuali Anda menjalankan aplikasi X11. Anda akan dapat menggunakan xclip
atau xsel
di sana karena OS/X harus menyinkronkan pilihan X11 CLIPBOARD dengan buffer pasteboard OS/X, tetapi itu akan sedikit sia-sia untuk memulai server X11 hanya untuk itu.
Pada OS/X, Anda dapat menggunakan pbcopy
perintah untuk menyimpan konten sewenang-wenang ke dalam pasteboard buffer:
pbcopy < file
(pengkodean karakter file diharapkan menjadi yang lokal). Untuk menyimpan output dari suatu perintah:
mycommand | pbcopy
Kerang
Kebanyakan shell memiliki buffer copy-paste sendiri. Dalam mode emacs, operasi potong dan salin menyimpan teks yang disalin/potong ke tumpukan yang Anda tarik/tempelkan dengan Ctrl-Y , dan lanjutkan dengan Alt+Y
Terkait:Ambil kolom pertama dari 2 file dan tulis ke file ke-3?zsh CUTBUFFER/pembunuh
Dalam zsh
, tumpukan disimpan di $killring
array dan bagian atas tumpukan di $CUTBUFFER
variabel meskipun variabel tersebut hanya tersedia dari widget Zsh Line Editor (zle) dan beberapa widget khusus adalah cara yang lebih disukai untuk memanipulasinya.
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
}
mycommand | pbcopy
mycommand | pbcopy
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A
zle-line-init
widget khusus dijalankan sekali pada awal setiap prompt perintah baru. Artinya, file hanya akan disalin pada prompt berikutnya. Misalnya, jika Anda melakukannya:
file-copy file; sleep 2
File hanya akan disalin setelah 2 detik itu.