從命令行複製文件,粘貼到 Gnome 視窗,反之亦然
xclip
有很多範例如何在or的幫助下從命令行複製文件的“內容”xsel
。我正在尋找的是從命令行複製文件並粘貼到文件資源管理器中。所以我將使用一個命令來複製一個文件,不僅是內容,而且使用Ctrl``v
它來將它粘貼到 UI 中。更新
xclip-copyfile
並xclip-pastefile
接近我期望的工作,但是當我執行xclip-copyfil
e 時,我只能使用xclip-pastefile
命令粘貼,而不是 GUI 粘貼。
我在 Ubuntu 中使用 Nautilus 作為我的文件瀏覽器,所以我不能代表任何其他瀏覽器。
Nautilus 處理粘貼文件的方式對於 Nautilus
Ctrl-v
來說是非常本地的,即。Nautilus 僅將 Ctrl-v 辨識為粘貼文件,以響應在nautilus本身中發出的*複製文件命令。*這意味著您不能使用 Ctrl-v 粘貼您在另一個應用程序中複製其路徑的文件。但是,如果它適合您,可以將 Ctrl+Shift+v 綁定到在
nautilus-scripts-manager
. 使用此腳本,您幾乎可以做任何您喜歡的事情。
nautilus-scripts-manager
使您可以訪問有關目前目錄以及選擇了哪些文件/目錄的一些基本資訊。我特別喜歡“nautilus-scripts”的一件事是它將其腳本添加到File
菜單項(以及上下文菜單)。這允許您設置Nautilus 3或Nautilus 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