ファイルの内容を表示せずにUNIXでファイルの内容をコピーする方法。猫やviで中身を見たくありません。
それらをクリップボードにコピーして、Windowsのメモ帳に貼り付けられるようにします。
アクセス制限のため、そのサーバーから別のサーバーにファイルをコピーできません。
X11(従来のUnixまたはLinuxベースのシステムで最も一般的なGUI)を使用している場合、ファイルのコンテンツをdisplayingなしでX11 CLIPBOARD選択にコピーするには、xclip
またはxsel
ユーティリティを使用できます。
_xclip -sel c < file
_
または:
_xsel -b < file
_
file
の内容をCLIPBOARD X11セレクションとして保存します。
UTF-8エンコーディングを使用して保存する必要があります。そうしないと、貼り付けが正しく機能しません。 file
が別の文字セットを使用してエンコードされている場合は、まず次のようにUTF-8に変換する必要があります。
_iconv -f latin1 -t utf8 | xclip -sel c
_
latin1/iso8859-1でエンコードされたファイルの場合。
これをCUT_BUFFERとして保存するには(CLIPBOARDまたはPRIMARY Xの選択を要求するものがない場合でもxterm
のようないくつかのアプリケーションによって照会され、選択のように処理するためのプロセスを実行する必要がない)が、おそらく望まないでしょう。または最近それを使用する必要があります:
_xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
_
(file
から末尾の改行文字を削除します)。
GNU screen
には、ファイルのコンテンツを独自のコピー/貼り付けバッファー(_^A]
_で貼り付ける)に丸めるreadbuf
コマンドがあります。そう:
_screen -X readbuf file
_
Apple OS/X can X11を使用しますが、X11アプリケーションを実行しない限り、デフォルトでは使用されません。OSとしてxclip
またはxsel
を使用できます/ XはX11 CLIPBOARDの選択をOS/Xペーストボードバッファーと同期させる必要がありますが、それだけでX11サーバーを起動するのは少し無駄です。
OS/Xでは、 pbcopy
コマンドを使用して、任意のコンテンツをpasteboardバッファーに保存できます。
_pbcopy < file
_
(ファイルの文字エンコードは、ロケールの文字エンコードであることが期待されています)。
ほとんどのシェルには、独自のコピー貼り付けバッファーがあります。 emacsモードでは、切り取りとコピーの操作により、コピー/切り取りされたテキストがスタックに格納されます。 Ctrl-Y、および Alt+Y
zsh
では、スタックは_$killring
_配列に格納され、スタックの先頭は_$CUTBUFFER
_変数に格納されますが、これらの変数はZsh Line Editor(zle)ウィジェットからのみ利用可能で、いくつかの特殊なウィジェットはそれらを操作する方法を好んだ。
これらはZLE経由でのみ利用できるため、コマンドで実行するのは少し複雑です。
_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
_
_zle-line-init
_特殊ウィジェットは、新しい各コマンドプロンプトの開始時に1回実行されます。つまり、ファイルは次のプロンプトでのみコピーされます。たとえば、次の場合:
_file-copy file; sleep 2
_
ファイルはこれらの2秒後にのみコピーされます。
たぶんこれを尋ねたかった 。ただし、読み取りたいファイルは、何らかのシステムコールによって開かれている必要があります。ファイルへのアクセス権がないと、ファイルを読み取ることができません。これがアクセス制限の考え方です。
X11の使用:
xclip -o > file
ファイルを読み取れる場合、アクセスの問題は宛先サーバーに関するものです。
Xclipをインストールし、ファイル名を引数として取る「copy」という名前のスクリプトを作成しました。
#! /bin/bash
xclip -selection clipboard -i $@
使用例:copy id_rsa.pub
公開鍵をクリップボードにコピーします。