ファイルをクリップボードにコピーまたは切り取って、後で別のディレクトリに貼り付けることができるかどうか疑問に思いました。簡単な調査を行ったところ、ファイルの内容をクリップボードにコピーする方法に関する情報のみが見つかりましたが、ファイル自体は見つかりませんでした。
ファイルマネージャーでファイルに対してCtrl-Cを押すと、ファイルの内容ISクリップボードにコピーされません。簡単なテスト:ファイルマネージャーでファイルを選択し、Ctrl-Cを押して開きます。テキストエディタでCtrl-Vを押します。結果はファイルの内容ではなく、フルパスになります。
実際には、逆のことはできないため、状況は少し複雑になります。テキストエディタからファイル名のリストをコピーして、ファイルマネージャに貼り付けます。
一部のデータをコマンドラインからX11クリップボードにコピーするには、xclip
コマンドを使用できます。
Sudo apt-get install xclip
ファイルの内容をコピーするまたはコマンドの出力をクリップボードに使用する
cat ./myfile.txt|xclip -i
次に、マウスの中ボタンを使用してテキストをどこかに貼り付けることができます(これは「プライマリ選択バッファ」と呼ばれます)。
データを「クリップボード」選択にコピーして、Ctrl-Vを使用してアプリケーションに貼り付けることができるようにする場合は、次の操作を実行できます。
cat ./myfile.txt|xclip -i -selection clipboard
コマンドラインからファイルをコピーしてファイルマネージャーに貼り付けるには、ファイルマネージャーが正しい「ターゲットアトム」を指定する必要があります。クリップボード内のデータを認識し、正しい形式でデータを提供します-幸い、ファイルマネージャーでファイルをコピーする場合、それは絶対ファイル名のリストであり、それぞれが新しい行にあり、find
コマンドを使用して簡単に生成できます。 :
find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list
(少なくともこれはKDEではうまくいきます)。これで、たとえばcb
と呼ぶことができる小さなスクリプトにラップすることができます。
#!/bin/sh
xclip -i -selection clipboard -t text/uri-list
次に、それを~/bin
に入れ、実行可能ビットを設定して、次のように使用します。
find ${PWD} -name "*.txt"| cb
いいですね。
ファイルpathをシステムクリップボードに置くことにした場合は、これを~/.bashrc
で使用できます。
yankpath() {
filepath=$(realpath "$1")
# We use the pipe to put the file name on the clipboard.
# If we did "xclip -selection clipboard $filepath", the
# contents of the file would be on the clipboard.
# -rmlastnl removes the ending newline from the file path.
echo $filepath | xclip -rmlastnl -selection clipboard
}
次に、yankpath ./a_file
を実行すると、a_file
のファイルパス全体がXシステムクリップボードに保存されます。