当我使用 Nautilus 导航到/usr/share/applications
目录时,我会得到从该目录中的所有 .desktop 文件中提取的元数据列表。
因此,我示例中的 Nautilus 中调用的文件"Oracle Java 7 Runtime"
转换为我随意猜测的文件JB-java.desktop
。在 Nautilus 中,属性对话框不会显示该文件的名称,因此获取文件名的方法是一种碰运气的方法。
有没有更好的方法?除了在目录中的所有文件中查找字符串“Oracle Java 7 Runtime”之外,这有点笨拙。
答案1
如果您喜欢该终端,@green7 的回复是可以的。
然而,这可以直接从 Nautilus 完成,尽管它需要一个脚本。
- 我已经为你写好了脚本。我不知道如何将脚本附加到这个答案中,所以请从我的文件区下载。
- 将此文件保存到以下文件夹:这意味着您的主文件夹内的文件夹。请注意前面
~/.gnome2/nautilus-scripts
的;这意味着它是一个隐藏文件,您需要在 Nautilus 中按+才能看到它。如果该文件夹不存在,请创建它。nautilus-scripts
.gnome2
.
.gnome2
CtrlHnautilus-scripts
- 将脚本保存在那里后,您需要使其可执行。右键单击 Nautilus 中的文件,选择“属性”>“权限”>“允许以程序形式执行文件”>“关闭”。
- 最后,您必须关闭 Nautilus 并重新打开它(您可能必须注销并重新登录,尽管我认为您不需要这样做)。
现在,要使用该脚本,请使用 Nautilus 再次查找这些桌面文件。选择其中一个或多个 > 右键单击 > 脚本 > 显示 .desktop 名称。
一个例子如下所示。
。
答案2
我编写了一个脚本来执行此操作:
/bin/bash #!/bin/bash # 是:内联文件搜索脚本 # 保存为:/usr/bin/is 并标记为可执行 文件名=“$1” echo -n "输入命令名称:" 命令名称="" while [ -z "$commandName" ]; 做 读取命令名称 完毕 执行 $命令名称 $文件名
要向脚本添加自动完成功能:
# 保存为:/etc/bash/completion.d/is _是() { 本地 cur prev opts 完整=() cur="${COMP_WORDS[COMP_CWORD]}" 上一页="${COMP_WORDS[COMP_CWORD-1]}" 如果 [[ ${cur} == * ]]; 那么 COMPREPLY=( $(find ./ -maxdepth 1 -iname "*${cur}*" | cut -d '/' -f 2) ) 返回 0 菲 } 完成 -F _is 是
它是一个内联文件搜索实用程序。
假设你在一个有很多文件的目录中。你想搜索一个文件,但你只记得一些零零碎碎的文件名。
例如,如果你只记得oracle
,你所要做的就是:
- 浏览目录
cd /路径/到/目录
- 输入以下内容并按TAB:
是 Oracle
- 它将显示
oracle
名称中包含的所有文件的列表。 - 然后您可以修改参数并按下来TAB选择特定的文件。
- 然后按下Enter选择一个程序来打开该文件。