web-dev-qa-db-ja.com

ファイルの内容を表示せずにファイルの内容をクリップボードにコピーする

ファイルの内容を表示せずにUNIXでファイルの内容をコピーする方法。猫やviで中身を見たくありません。

それらをクリップボードにコピーして、Windowsのメモ帳に貼り付けられるようにします。

アクセス制限のため、そのサーバーから別のサーバーにファイルをコピーできません。

87
Web Nash

X11

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画面

GNU screenには、ファイルのコンテンツを独自のコピー/貼り付けバッファー(_^A]_で貼り付ける)に丸めるreadbufコマンドがあります。そう:

_screen -X readbuf file
_

Apple OS/X

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 CUTBUFFER/killring

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秒後にのみコピーされます。

100

たぶんこれを尋ねたかった 。ただし、読み取りたいファイルは、何らかのシステムコールによって開かれている必要があります。ファイルへのアクセス権がないと、ファイルを読み取ることができません。これがアクセス制限の考え方です。

2
ikrabbe

X11の使用:

xclip -o > file

ファイルを読み取れる場合、アクセスの問題は宛先サーバーに関するものです。

0
tjombka

Xclipをインストールし、ファイル名を引数として取る「copy」という名前のスクリプトを作成しました。

#! /bin/bash
xclip -selection clipboard -i $@

使用例:copy id_rsa.pub公開鍵をクリップボードにコピーします。

0
ahoffer