将文件名从 Nautilus 传递到 shell 脚本

Pass filename from Nautilus to shell script

我正在尝试执行一个 shell 脚本,该脚本获取一个文件名作为参数。

如果我去终端输入完整的 PATH,我就能做到。

但我正在努力使它更加用户友好,所以我想做的是从文件管理器或 nautilus 发送参数(完整路径)。

可能吗?

有可能。这是一种方法:

将您的脚本复制到文件夹 ~/.local/share/nautilus/scripts/ -- 请注意,此路径将扩展以包含当前用户信息,例如:/home/john/.local/share/nautilus/scripts/.

现在,在您的脚本中,使用 </code> 捕获参数。例如,假设您的脚本旨在删除文件,那么您的脚本可能是这样的:</p> <pre><code>#!/bin/bash rm -f "" exit

现在,重新启动 Nautilus 并导航到您要对其执行操作的文件。右键单击该文件,然后在出现的菜单上选择 "scripts",然后在出现的 sumenu 上选择您的脚本名称——这将以文件名作为参数执行您的脚本。

注意:不要忘记先让脚本可执行,例如:chmod +x /home/john/.local/share/nautilus/scripts/myScript

好的,我将分享我发现有效的方法。

我试图做的就是将路径作为参数传递,而不是在命令行中键入它。使它对用户友好。

所以我使用 zenity 工具文件 selection 来浏览文件管理器和 select 文件。

./script.sh $(zenity --file-selection)

看,现在我正在传递我 select编辑的文件的路径。

如果您想尝试一下,只需在命令行中输入即可。

zenity --file-selection