使用自定义命令打开文件

Ion*_*zău 6 gedit command-line nautilus scripts

gedit应用程序被设置为文本文件的默认应用程序。假设我有一个具有执行权限的/usr/bin脚本,当我使用 Nautilus 或xdg-open.

/usr/bin/foo

echo "Works!"
gedit $*
Run Code Online (Sandbox Code Playgroud)

如果我这样做foo my_text_file,则Works!消息将出现并gedit运行。如何将此foo脚本设置为作为默认应用程序运行?

ter*_*don 9

干净的方法是.desktop为您的脚本创建一个文件,然后将其设为默认文本编辑器。

  1. 创建一个包含/usr/share/applications/foo.desktop以下内容的文件:

    [Desktop Entry]
    Name=foo
    Exec=/usr/bin/foo.sh %U
    Terminal=false
    Type=Application
    MimeType=text/plain;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使其成为text/plainmimetype的默认程序:

    xdg-mime default foo.desktop "text/plain" 
    
    Run Code Online (Sandbox Code Playgroud)

作为一个肮脏的黑客,你也可以简单地调用你的脚本gedit

sudo mv /usr/bin/gedit /usr/bin/gedit.orig
sudo mv /path/to/yourscript.sh /usr/bin/gedit
Run Code Online (Sandbox Code Playgroud)

然后让您的脚本调用原始脚本:

echo "Works!"
/usr/bin/gedit.original "$@"
Run Code Online (Sandbox Code Playgroud)