GUIファイルマネージャで複数のファイルを選択し、Ctrl-C(ファイルに関する情報をクリップボードにコピー)をクリックして別のフォルダに移動し、Ctrl-Vを押してファイルをそのディレクトリにコピーできます。フォルダ。
実験的に、ファイルマネージャからファイルをコピーしてテキストエディタに切り替えることができます。 Ctrl-Vを押して絶対ファイル名のリストを貼り付けます。反対のプロセス(テキストエディタからファイルリストをコピーしてファイルマネージャに貼り付ける)は機能しません。おそらく他の理由のためです。目標原子
この練習の目的は、コマンドラインからいくつかのファイルをコピーできることです。
find ${PWD} -name "*.txt" | xclip <magic parameters>
次に、ファイルマネージャに切り替えて、ファイル - >貼り付けを使用してすべてのディレクトリにコピーします。
したがって、質問は次のようになります。xclip
ファイルマネージャが選択項目をファイルリストとして認識し、「貼り付け」メニュー項目を有効にするには、どのパラメータを指定する必要がありますか(または他のプログラムに)?
または、Xが選択したアイテムの内容を確認し、現在含まれているデータを確認できる低レベルのツールはありますか?
答え1
はい、デフォルトでは、次のようにクリップボード選択機能を提供する必要があります。
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
んpcmanfm
。
また、数行のコードでこれを実装することもできますperl-tk
。
答え2
これらの答えに基づいて、コマンドラインfiletoclip
で指定されたファイルをクリップボードにコピーするPythonスクリプトを作成しました。
本質的に必要なのは、これを解決し、「奇妙な」文字をクリップボードにコピーする前にパーセントエンコードすることです。xclip
Pythonで直接クリップボードを使用することは予想よりも痛いため、実際のクリップボード操作は委任されます。
#!/usr/bin/env python3
import os.path
import sys
from urllib.parse import quote
from subprocess import run
out = [os.fsencode('file://' + quote(os.path.abspath(x))) for x in sys.argv[1:]]
run(['xclip', '-i', '-selection', 'clipboard', '-t', 'text/uri-list'],
input=b'\n'.join(out), check=True)
答え3
なぜfind
あなたのためにそれをしないのですか?
find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &
編集:私が理解している限りman xclip
:ファイルやディレクトリではなくテキストだけを処理します。