ファイルの内容を表示せずにUNIXでファイルの内容をコピーする方法。猫やviに中身を見たくない。
それらをクリップボードにコピーして、Windowsのメモ帳に貼り付けたいのです。
アクセス制限のため、そのサーバーから別のサーバーにファイルをコピーできません。
承認された回答:
X11
X11(従来のUnixまたはLinuxベースのシステムで最も一般的なGUI)を使用している場合、ファイルのコンテンツを表示せずにX11CLIPBOARD選択にコピーします。 それなら、 xclip
を使うことができます またはxsel
ユーティリティ。
xclip -sel c < file
または:
xsel -b < file
file
のコンテンツを保存する CLIPBOARDX11の選択として。
コマンドの出力を保存するには:
mycommand | xclip -sel c
mycommand | xsel -b
UTF-8エンコーディングを使用して保存する必要があることに注意してください。そうしないと、貼り付けが正しく機能しません。 ファイル
の場合 別の文字セットを使用してエンコードされている場合は、次のように、最初にUTF-8に変換する必要があります。
<file iconv -f latin1 -t utf8 | xclip -sel c
latin1でエンコードされたファイルの場合 / iso8859-1 。
xsel
バイナリデータでは機能しません(nullバイトは受け入れません)が、 xclip
CUT_BUFFERとして保存するには( xterm
などの一部のアプリケーションによって引き続きクエリが実行されます) CLIPBOARDまたはPRIMARYXの選択を主張するものがなく、選択のようにそれを提供するためにプロセスを実行する必要がない場合)。ただし、今日ではおそらくそれを使用したくない、または使用する必要はありません。
xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
( file
から末尾の改行文字を削除します 。
GNU画面
GNU画面コード>
readbuf
があります ファイルの内容を独自のコピー&ペーストバッファ( ^ A]
で貼り付けるコマンド )。だから:
screen -X readbuf file
Apple OS / X
Apple OS/Xはできます X11を使用します。 X11アプリケーションを実行しない限り、デフォルトではありません。 xclip
を使用できるようになります またはxsel
OS/XはX11CLIPBOARDの選択をOS/Xペーストボードバッファと同期する必要があるためですが、そのためだけにX11サーバーを起動するには少し無駄になります。
OS / Xでは、 pbcopy
を使用できます 任意のコンテンツをペーストボードに保存するコマンド バッファ:
pbcopy < file
(ファイルの文字エンコードはロケールのものであることが期待されます)。コマンドの出力を保存するには:
mycommand | pbcopy
シェル
ほとんどのシェルには、独自のコピー&ペーストバッファがあります。 emacsモードでは、カットアンドコピー操作により、コピー/カットされたテキストがスタックに保存され、 Ctrl-Yでヤンク/貼り付けされます。 、 Alt + Yで循環します
関連:2つのファイルから最初の列を取得し、それを3番目のファイルに書き込みますか?zsh CUTBUFFER / killring
zsh
で 、スタックは $ killring
に保存されます 配列と$CUTBUFFER
のスタックの最上位 これらの変数はZshLineEditor(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
}
mycommand | pbcopy
mycommand | pbcopy
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A
zle-line-init
特別なウィジェットは、新しいコマンドプロンプトの開始時に1回実行されます。つまり、ファイルは次のプロンプトでのみコピーされます。たとえば、次の場合:
file-copy file; sleep 2
ファイルはその2秒後にのみコピーされます。