Scripting

將文件從 nautilus-script 複製到剪貼板

  • April 24, 2011

我有一個 nautilus 腳本,它根據在 nautilus 視窗中選擇的文件生成存檔文件。該存檔文件在/tmp目錄中創建。我想要一種方法將此文件從腳本複製到剪貼板,以便使用者可以轉到桌面或主目錄並粘貼它。

我試過用xclipand來做這個xsel,但他們似乎沒有復製文件複製操作,而是複製文件的內容。

xclip -in -selection c generated-archive
echo -n generated-archive | xsel --clipboard --input

他們都沒有做我需要的。

所以,我想知道這是否可能,如果是,我應該怎麼做?

謝謝。

似乎 Nautilus 跟踪其內部狀態與剪貼板的更改有關,這意味著剪貼板的任何狀態更改(包括用相同的文件路徑字元串替換)都會自動取消粘貼掛起狀態,因此當外部載入的剪貼板包含有效的文件路徑…

Nautilus 僅辨識從 Nautilus 本身啟動的文件複製/剪切。

這正是您所觀察到的……也許對為什麼有一些解釋……我在 Nautilus 原始碼“cut-n-paste-code”中註意到它包含很多關於保存狀態的資訊。

# In Nautilus, manually "copy" a file (to the clipboard) using Ctrl+C

xsel -ob |xxd      # hex-display clipboard contents of the clipboard
echo "### At this point, Nautilus **paste** works."
read               # pause
xsel -ob |xsel -ib # Replace clipboard with itself
xsel -ob |xxd      # hex-display clipboard contents again
echo "### At this point, Nautilus **paste** does NOT work."

手動複製/剪切後,您可以執行無休止的操作(在 Nautilus 或 elswhere 中),並且 Nautilus 中的 Ctrl+V粘貼將起作用,但一旦您修改剪貼板,它就不會“粘貼”…

引用自:https://unix.stackexchange.com/questions/6644