假设我运行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是我想打开的文件(S)。
发布于 2022-06-19 17:28:24
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的S桌面文件,尽管没有路径。找出它在哪里(如果没有定义,可以使用$XDG_DATA_DIRS或/usr/local/share:/usr/share --在applications子目录中查找),并提取这个Exec条目;如果应用程序支持,%F place-holder将指定多个文件的命名位置。
https://unix.stackexchange.com/questions/706756
复制相似问题