我希望能够选择一个文件,使用快捷方式运行脚本,并且该脚本获取我选择(或拖动)的文件的路径。我在 nautilus 中选择了它。
我知道如何运行命令,只是不知道如何获取所选文件的位置。我假设这是可能的,因为如果我将文件拖放到终端,它会粘贴路径...
我用它来做什么?我有一个名为协同作用即通过本地网络,使用 1 个鼠标和 1 个键盘在多台计算机上运行。
您可以将其设置为让您的屏幕彼此相邻,如下所示:
但是(因为这是免费版本),我无法在它们之间拖放文件。因此,这个 Dock 设置在两个屏幕之间,当我拖动文件时,我可以将其放在那里 - 然后它会将其复制到第二台计算机上的相同路径(如果存在)或 misc 文件夹。
答案1
经过一番研究,我发现了你可能在寻找的东西。这可以使用.desktop
文件来完成。让我演示一下。
在您的主目录中创建一个文件(作为示例),其扩展名.desktop
包含以下内容:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Exec=bash <path-to-your-script> %u
Name=visible name here
Comment=comment here
Icon=icon path here
替换<path-to-your-script>
为要执行的脚本的路径。这%u
是您将拖到 .desktop 文件上以触发脚本的文件路径。这显然将作为参数传递给您的脚本。
不要忘记.desktop
通过以下方式制作你的可执行文件:
chmod u+x test.desktop
要检查它是否正常工作,您可以将其指向此脚本:
#!/bin/sh
echo $1 > ~/out.txt
您将看到拖到存储在主目录中的 out.txt 中的 .desktop 文件中的文件的完整路径。
最后,您可以设置一个 Dock 来将它放置在其中,这样您就可以将它放置在屏幕的一侧。
参考:
答案2
对于那些不喜欢 dock 解决方案的人来说,可以简单地使用 Nautilus 环境变量NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
或$@
编写脚本,将其放在脚本文件夹因此它将出现在上下文菜单中。优点是您可以一次选择更多文件。要测试它:
#!/bin/bash
notify-send $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
exit 0