Ecco un one-liner:
ls -AQp | grep "\.mp3\"$" | xargs `xdg-mime query default audio/mpeg | grep -oP '.+(?=\.desktop)'`
Poiché ho installato VLC (e come predefinito per gli mp3), questo apre tutti i file mp3 in una directory con VLC per me. Non si tratta di una sorta di "soluzione universale per risolvere tutti i problemi ", ma dovrebbe funzionare.
Spiegazione:
ls -AQpelenca "quasi tutti" i file, citando i nomi dei file e aggiungendo la barra ai nomi delle directory. Sostituisci -pcon --file-typese desideri escludere anche i link simbolici. Citando in caso di spazi nei nomi dei file.
grep "\.mp3\"$" seleziona solo i file che terminano con ".mp3" (più virgolette doppie).
xargs reindirizza l'intero lotto per programmare la restituzione della subshell successiva.
subshell:
xdg-mime query default audio/mpegfornisce il nome dell'app predefinito nel formato "app.desktop" per i file il cui mime è audio/mpeg. Puoi controllare il mimetype per qualsiasi file nel tuo ambiente con xdg-mime query filetype /path/to/file. Ho "audio / mpeg" per file mp3.
grep -oP '.+(?=\.desktop)' ottiene "app" da "app.desktop".
Se lo utilizzerai molto frequentemente in un sistema che non cambierà molto, potresti accorciarlo a questo:
ls -AQp | grep "\.mp3\"$" | xargs default_app
Dove si sostituisce default_appcon il programma effettivo che si apre con i file. Puoi capire il suo nome con questo:
xdg-mime query default audio/mpeg | grep -oP '.+(?=\.desktop)'
xdg-opennon funzionerà con questo problema, perché accetta solo un argomento di progettazione. Se si utilizza
xargs -n1, si sta probabilmente colpendo il muro con il fatto che l'app in questione potrebbe aprire tutti i file in una nuova istanza, che potrebbe diventare brutta in più di un modo.
xdg-opendovrebbe davvero essere in grado di farlo per impostazione predefinita ... basta passare l'elenco degli argomenti al programma. Forza gente su freedesktop.org! :-)