コマンドラインからファイルをコピーしてGnomeウィンドウに貼り付けるか、その逆に貼り付けます。

コマンドラインからファイルをコピーしてGnomeウィンドウに貼り付けるか、その逆に貼り付けます。

xclipまたはを使用してコマンドラインからファイルの「内容」をコピーする方法の多くの例がありますxsel。私が探しているのは、コマンドラインからファイルをコピーしてファイルエクスプローラに貼り付けることです。それで、コマンドを使って内容だけでなくファイルもコピーした後、CtrlvUIに貼り付けてみましょう。

修正する xclip-copyfilexclip-pastefile期待どおりに機能しますが、eを実行するときは、GUI貼り付けではなくコマンドを使用してのみ貼り付けるxclip-copyfilことができます。xclip-pastefile

ベストアンサー1

私はUbuntuでNautilusをファイルブラウザとして使用しているので、他のブラウザについては話すことはできません。
ノーチラスがファイルの貼り付けを処理する方法は、Ctrl-vノーチラスに非常に限定されています。 NautilusはCtrl-vのみを認識します。ファイルを貼り付けるに答えるファイルのコピー実行中のコマンドノーチラスそれ自体。つまり、Ctrl-vを使用してパスをコピーしたファイルを他のアプリケーションに貼り付けることはできません。

ただし、必要に応じてCtrl + Shift + vをバインドできますnautilus-scripts-manager。このスクリプトを使用すると、必要なほとんどすべての操作を実行できます。

nautilus-scripts-manager現在のディレクトリと選択したファイル/ディレクトリに関するいくつかの基本情報にアクセスできます。 「nautilus-scripts」について私が特に好きなことの1つは、Fileメニュー項目(コンテキストメニューだけでなく)にスクリプトを追加することです。これにより、ローカルキーバインディングを設定できますノーチラス3またはノーチラス2

xclip-pastefilesすでに述べた例を使用したおおよその例は次のとおりです。現在の状態では、xclip-copyfilesCtrl-Shift-vを実行する前にこれを設定する必要があります。生地スクリプト。
setup を実行した後、xclip-copyfilesNautilus ウィンドウに移動し、ターゲットディレクトリ (またはそのディレクトリ内のファイル) を選択し、スクリプトのキーバインディングをクリックするだけです。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 

おすすめ記事