Voici un one-liner:
ls -AQp | grep "\.mp3\"$" | xargs `xdg-mime query default audio/mpeg | grep -oP '.+(?=\.desktop)'`
Comme je l' ai installé VLC (et par défaut pour les mp3s), cela ouvre tous les fichiers mp3 dans un répertoire avec VLC pour moi. Ce n'est pas une sorte de « universel résoudre-it-all-et-travail en tous les cas-paniquer », mais il devrait fonctionner.
Explication:
ls -AQp
listes « presque tous » les fichiers, citant les noms de fichiers et en ajoutant aux noms des slash répertoires. Remplacer -p
avec --file-type
si vous souhaitez exclure des liens symboliques aussi bien. Citant en cas d'espaces dans les noms de fichiers.
grep "\.mp3\"$"
sélectionne uniquement les fichiers qui se termine par » .mp3" (plus guillemet).
xargs
réoriente l'ensemble du lot au programme suivant retourne sous-shell.
sous-shell:
xdg-mime query default audio/mpeg
donne l' application par défaut le nom de » au format « app.desktop » pour les fichiers dont le mime est audio/mpeg
. Vous pouvez vérifier mimetype pour tout fichier dans votre environnement avec xdg-mime query filetype /path/to/file
. Je suis « audio / mpeg » pour le fichier mp3.
grep -oP '.+(?=\.desktop)'
obtient la « app » de « app.desktop ».
Si vous allez l'utiliser très souvent dans un système qui ne va pas beaucoup changer, vous pouvez raccourcir à ceci:
ls -AQp | grep "\.mp3\"$" | xargs default_app
Où vous remplacez default_app
le programme réel qui ouvre les fichiers. Vous pouvez trouver son nom avec ceci:
xdg-mime query default audio/mpeg | grep -oP '.+(?=\.desktop)'
xdg-open
ne fonctionnera pas avec ce problème, car il accepte un seul argument par la conception. Si vous utilisez
xargs -n1
, vous êtes propably gona a frappé le mur avec que l'application résultant en question pourrait ouvrir chaque fichier dans une nouvelle instance, ce qui pourrait devenir laid dans plus d'une façon.
xdg-open
devrait vraiment être en mesure de le faire par défaut ... il suffit de passer la liste des arguments au programme. Venez sur freedesktop.org! :-)