私が走っているとしましょう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
複数のファイルの命名場所を指定します (アプリケーションがサポートしている場合)。