İşte bir astar:
ls -AQp | grep "\.mp3\"$" | xargs `xdg-mime query default audio/mpeg | grep -oP '.+(?=\.desktop)'`
VLC'yi yüklediğimden (ve mp3'ler için varsayılan olarak), bu benim için VLC bulunan bir dizindeki tüm mp3 dosyalarını açar. Bu, "herhangi bir tür değildir , evrensel-çözmek-it-all-ve-iş-in-her-durum heyecanlanıyorum ", ancak gerektiği çalışır.
Açıklama:
ls -AQp"hemen hemen tüm" dosyaları listeler, dosya adlarını gösterir ve dizin adlarına eğik çizgi ekler. Simge bağlantılarını da hariç tutmak istiyorsanız -pile değiştirin --file-type. Dosya adlarında boşluk olması durumunda alıntı yapma.
grep "\.mp3\"$" yalnızca ".mp3" ile biten dosyaları (artı çift tırnak işareti) seçer.
xargs tüm alt kabuğu aşağıdaki alt kabuk döndürme programlamak için yeniden yönlendirir.
altkabuk:
xdg-mime query default audio/mpegmime olan dosyalar için "app.desktop" biçiminde varsayılan uygulamanın adını verir audio/mpeg. Mimetype ile ortamınızdaki herhangi bir dosyayı kontrol edebilirsiniz xdg-mime query filetype /path/to/file. Mp3 dosyası için "ses / mpeg" var.
grep -oP '.+(?=\.desktop)' "app" dan "app.desktop" alır.
Çok fazla değişmeyecek bir sistemde çok sık kullanacaksanız, bunu kısaltmak isteyebilirsiniz:
ls -AQp | grep "\.mp3\"$" | xargs default_app
default_appDosyalarla açılan gerçek programla değiştirdiğiniz yer . Bununla adını anlayabilirsiniz:
xdg-mime query default audio/mpeg | grep -oP '.+(?=\.desktop)'
xdg-opentasarım ile sadece bir argümanı kabul ettiği için bu problemle çalışmaz. Kullanıyorsanız
xargs -n1, söz konusu sonuçtaki uygulamanın her dosyayı yeni bir durumda açabileceği ve birden fazla şekilde çirkin olabileceği için duvara çarpıyorsunuz.
xdg-openbunu gerçekten varsayılan olarak yapabilmelidir ... sadece argüman listesini programa iletmeniz yeterlidir. Haydi freedesktop.org insanı! :-)