Nautilus 操作仅显示文件夹中的文件

Nautilus 操作仅显示文件夹中的文件

我想创建几个 nautilus 操作,只有当文件夹中有某个文件时才会显示。这些是位置操作,我想要的一个简单示例是“Make”选项,它make在文件夹中运行,但只有当该文件夹包含 makefile 时才会显示。这样的事情可能吗?

我尝试过使用基本名称,但它们似乎只适用于选定的项目。我还研究了“环境”面板上的“执行环境”选项。我可能可以使用“如果命令输出‘true’则显示”选项来执行此操作,但我不知道如何将文件夹路径传递给该命令。

答案1

经过多次尝试我终于解决了这个问题。

首先,我发现,通过使用 zenity 查看其执行的操作,标准变量实际上可以传递到“环境”选项卡上的“如果命令输出“true”则显示”设置。我们在这里感兴趣的是%f。还值得注意的是,命令必须向其标准输出输出“true”且不带换行符,而不是简单地使用零返回代码来表示 true。

然后我尝试输入以下命令:

ls '%f' | grep -q 'Makefile' && echo -n 'true'

它应该可以正常工作,但似乎该字段中必须有一个单一命令,管道和 && 将不起作用。

我最终创建了以下脚本,并将其标记为可执行文件并放在我的 bin 目录中

#!/bin/bash
# testexists

ls $1 | grep -q $2 && echo -n 'true'

然后我将以下内容放入“如果命令输出“true”则显示”字段

testexists '%f' 'Makefile'

并且一切都开始正常工作(例如,只有当文件夹包含 Makefile 时,我的 make 命令才会显示)。

相关内容