
有許多範例如何借助xclip
或來從命令列複製文件的“內容” xsel
。我正在尋找的是從命令列複製文件並貼上到文件資源管理器。因此,我將使用命令來複製文件,而不僅僅是內容,然後將Ctrlv其貼到 UI 中。
更新
xclip-copyfile
並且xclip-pastefile
工作接近我的預期,但是當我運行xclip-copyfil
e 時,我只能使用xclip-pastefile
命令粘貼,而不是 GUI 粘貼。
答案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 之前進行設置貼上腳本。
執行 setup 後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