如何使用 xdg-open 打开多个文件

如何使用 xdg-open 打开多个文件

假设我跑步xdg-open file.flac。它将相当于mpv file.flac.但如果我运行xdg-open *.flac,它会给我一个错误,因为它认为其他文件是“意外的参数”。我想要它做的是运行mpv *.flac:单个文件mpv,所有文件都匹配*.flac,因此它们最终会出现在播放列表中。

编辑:我找到了一个解决方法:

printf "$sel" | sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/" | xargs `printf "gtk-launch $(xdg-mime query default $(grep ${sel##*.}= /usr/share/applications/mimeinfo.cache | cut -d '/' -f 1)/${sel##*.})"`

$sel是我要打开的文件。

答案1

xdg-open不处理多个参数,因此您能做的最好的事情就是循环遍历文件:

for file in ./*.flac; do xdg-open "$file"; done

xdg-open跑起来是不可能的mpv *.flac

您可以尝试制定手动使用的命令:

$ xdg-mime query filetype *.flac
audio/flac
$ xdg-mime query default audio/flac

这应该指向mpv的桌面文件,尽管没有路径。找出它在哪里(使用$XDG_DATA_DIRS/usr/local/share:/usr/share如果未定义 - 在applications子目录中查找),然后提取入口Exec;占位%F符指定多个文件的命名位置(如果应用程序支持的话)。

相关内容