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 -AQp
elenca "quasi tutti" i file, citando i nomi dei file e aggiungendo la barra ai nomi delle directory. Sostituisci -p
con --file-type
se 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/mpeg
fornisce 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_app
con 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-open
non 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-open
dovrebbe davvero essere in grado di farlo per impostazione predefinita ... basta passare l'elenco degli argomenti al programma. Forza gente su freedesktop.org! :-)