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


67

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

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

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


ファイルを開くことなくファイルの内容にアクセスすることはできません...
123

わかりました。もしそうなら、非常に大きなファイルを簡単にコピーする方法があります。私は1000行のようになりました。
Webナッシュ

ファイルが巨大な場合、クリップボードはとにかく失敗します。ファイルを読むことができないとアクセス制限が言うとき、あなたはもちろん失われます。ファイルを書き込めないためにファイルをコピーできない場合は、書き込み可能な別の宛先があるかどうかを自問する必要があります。
ikrabbe

とても大きい。1000行。一つを選ぶ。
123年

2
のWindowsのメモ帳は、 BTW?
ステファンシャゼラス

回答:


77

X11

X11(従来のUnixまたはLinuxベースのシステムで最も一般的なGUI)を使用している場合、ファイルの内容を表示せずにX11 CLIPBOARD選択にコピーするには、xclipor xselユーティリティを使用できます。

xclip -sel c < file

または:

xsel -b < file

の内容をfileCLIPBOARD X11選択として保存します。

UTF-8エンコードを使用して保存する必要があります。そうしないと、貼り付けが正しく機能しません。がfile別の文字セットを使用してエンコードされている場合、次のように最初にUTF-8に変換する必要があります。

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

latin1 / iso8859-1でエンコードされたファイルの場合。

CUT_BUFFERとして保存xtermするには最近使用する必要があります:

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

(末尾の改行文字をから削除しますfile)。

GNU画面

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

screen -X readbuf file

Apple OS / X

Apple OS / X X11 使用できますが。X11アプリケーションを実行しない限り、デフォルトではありません。あなたは使用することができるだろうxclipか、xselそこのようにOS / X OS / XのペーストボードバッファとX11のクリップボードの選択を同期させる必要がありますが、それはただそのためにX11サーバを起動するには、廃棄物のビットになります。

OS / Xでは、pbcopyコマンドを使用して任意のコンテンツをペーストボードバッファーに保存できます。

pbcopy < file

(ファイルの文字エンコーディングは、ロケールの文字エンコーディングであると予想されます)。

ほとんどのシェルには、独自のコピー/貼り付けバッファーがあります。emacsモードでは、切り取りとコピーの操作により、コピー/切り取りされたテキストが、ヤンク/貼り付けでスタックに保存されCtrl-YAlt+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特別なウィジェットは、各新しいコマンドプロンプトの開始時に一度だけ実行されます。つまり、ファイルは次のプロンプトでのみコピーされます。たとえば、次の場合:

file-copy file; sleep 2

ファイルはそれらの2秒後にのみコピーされます。


3
私はこのエラーに直面しています:Error: Can't open display: (null)
Marcelo Filho

フェドラ7での同じ問題
Michael Pacheco

@MarceloFilho、xclipおよびxselX11ユーティリティですが、彼らは、X11の選択を操作し、これだけX11環境で使用することができます$DISPLAY設定されています。
ステファンシャゼラス

2

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


実際の問題は何ですか?読むことはできてもコピーできない場合は、書き込めない可能性があります。ただし、コピーする場合は、データをどこかに書き込む必要があります。
ikrabbe

ありがとうございました!!!あなたは)私の命を救った
アレナKastsiukavets

0

X11の使用:

xclip -o > file

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.