
xclip
またはを使用して、コマンド ラインからファイルの「内容」をコピーする方法の例はたくさんありますxsel
。私が探しているのは、コマンド ラインからファイルをコピーして、ファイル エクスプローラーに貼り付けることです。そのため、内容だけでなくファイルをコピーするコマンドを使用し、Ctrlvそれを UI に貼り付けます。
更新しました
xclip-copyfile
xclip-pastefile
期待どおりに動作しますが、e を実行すると、GUI 貼り付けではなく、コマンドxclip-copyfil
による貼り付けしかできません。xclip-pastefile
答え1
私はUbuntuでファイルブラウザとしてNautilusを使用しているので、他のブラウザについては言及できません。Nautilusが
ファイルを貼り付ける方法はCtrl-v
Nautilusに非常にローカルです。つまり、NautilusはCtrl-vのみを認識します。ファイルを貼り付けるに応じてファイルをコピー中に発行されたコマンドオウムガイつまり、別のアプリケーションでパスをコピーしたファイルを Ctrl-v を使用して貼り付けることはできません。
ただし、必要に応じて、Ctrl + Shift + v を で実行されるスクリプトにバインドできますnautilus-scripts-manager
。このスクリプトを使用すると、ほぼ何でも好きなことができます。
nautilus-scripts-manager
現在のディレクトリと選択されているファイル/ディレクトリに関する基本的な情報にアクセスできます。「nautilus-scripts」で特に気に入っているのは、スクリプトをメニューFile
項目(およびコンテキストメニュー)に追加することです。これにより、ローカルのキーバインディングを設定できます。ノーチラス3またはノーチラス2。
すでに述べた例を使った大まかな例を示しますxclip-pastefiles
。現状では、xclip-copyfiles
Ctrl-Shift-vを実行する前に設定する必要があることに注意してください。ペーストスクリプト。
セットアップを実行したらxclip-copyfiles
、Nautilus ウィンドウに移動して、ターゲット ディレクトリ (またはそのディレクトリ内のファイル) を選択し、スクリプトのキーバインドを押すだけです。Ctrl + Shift + v
#!/bin/bash
# Note: `leafpad' is a simple text editor which doubles as a quick-and-easy testing messsage-box
dir=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |sed -n 1p)
if [[ -n "$dir" ]] ;then
# target dir from `Nautilus Scripts' (1st priority)
if [[ -e "$dir" ]] ;then
[[ -d "$dir" ]] || dir="${dir%/*}"
[[ -d "$dir" ]] || dir=
fi
else
# target dir from $1 (2nd priority)
dir="$1"
if [[ -e "$dir" ]] ;then
[[ -d "$dir" ]] || dir="${dir%/*}"
[[ -d "$dir" ]] || dir=
fi
fi
if [[ -z "$dir" ]] ;then
# target dir from clipboard (if not in $NAUTILUS_SCRIPT.. or $1)
dir="$(xclip -o -sel c)"
if [[ -e "$dir" ]] ;then
[[ -d "$dir" ]] || dir="${dir%/*}"
[[ -d "$dir" ]] || dir=
else
dir=
fi
fi
[[ -d "$dir" ]] || { echo "$(basename "$0"): target directory not found in clipboard" |leafpad; exit 1; }
{ cd "$dir"
echo "Current Directory:"
echo " $dir"
echo "======="
echo xclip-pastefile # run your command (`echo' is for testing)
} 2>&1 |leafpad