コマンドラインからクリップボードにファイルをコピーする


18

GUIファイルマネージャーでは、いくつかのファイルを選択し、Ctrl-C(ファイルに関する情報をクリップボードにコピーすると思われます)を押してから、別のフォルダーに移動してCtrl-Vを押すと、ファイルがその中にコピーされますディレクトリ。

実験として、ファイルマネージャーでファイルをコピーした後、テキストエディターに切り替えることができます。Ctrl-Vを押すと、絶対ファイル名のリストが貼り付けられます。逆のプロセス(テキストエディターからファイルのリストをコピーしてファイルマネージャーに貼り付ける)は機能しません。これは、おそらくターゲットアトムが異なるためです。

演習の目標は、コマンドラインからいくつかのファイルをコピーできるようにすることです。たとえば、

find ${PWD} -name "*.txt" | xclip <magic parameters>

次に、ファイルマネージャに切り替えて、[ファイル]-> [貼り付け]を使用してすべてをディレクトリにコピーします。

したがって、質問は次のとおりです。xclipファイルマネージャーが選択をファイルのリストとして認識し、[貼り付け]メニュー項目を有効にするために、どのパラメーター(または他のプログラム)を指定する必要がありますか?

または、X選択の内容を検査し、現在含まれているデータを確認できる低レベルのツールはありますか?

回答:


12

はい、基本的に、CLIPBOARDの選択を次のいずれかで提供する必要があります。

  • text/uri-list コンテンツが

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionまたはx-special/gnome-copied-filesコンテンツ付きcopy\nfile://$path1\nfile://$path2\0またはcut\nfile://$path1\nfile://$path2...\0

ではxclip、あなたのようなものでこれを達成することができます

find "$PWD" -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

また、このloliclipコマンドは有望に見えましたが、値を取得できましたが、値を保存できずloliclippcmanfm正常に取得できませんでした。

また、数行で実装できる必要がありperl-tkます。


OK、このtext/uri-list亜種をいじくり回した後、コマンドラインからコピーして、ファイルをDolphinファイルマネージャーに貼り付けることができます。file://プレフィックスを必要としないため、コマンドはで正常に機能しfindます。あなたの質問を編集して、KDEで動作するコマンドを追加しました-誰でもGnomeや他の場所でテストできますか?
セルゲイ

編集してくれてありがとう。file://pcmanfmどちらも必要ないようです(ただし、pcmanfmにはそれ自体が含まれています)。ただし、いくつかの特殊文字(少なくともLF)はURIエンコードする必要があります。
ステファンシャゼル

はい。私はあなたが使用する必要があります確認することができますfile:///new%0Aline(任意のエンコーディングで非ASCIIを含む)以外の文字が(少なくともpcmanfm付き)罰金のようですが、改行文字を含むファイルのために
ステファンChazelas

1

なぜfindあなたのためにそれを作らないのですか?

find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &

編集:私が理解していることからman xclip:それはテキストのみを処理し、ファイルやディレクトリは処理しません。


主に実験であるため、「今すぐクリップボードにファイルをコピーし、後で貼り付ける場所を決定する」のが便利な方法だと思いますが。
セルゲイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.