Traté de abrir todos mis archivos .mp3 desde una carpeta usando, ¡ xdg-open pero descubrí que solo abre uno! ¡Así que busqué un poco pero no había tal pregunta! Encontré "evince" pero aparentemente abre archivos de texto y gnome-open también abre un archivo.
Quiero abrir todos los archivos del mismo formato en una carpeta desde el terminal. Soy nuevo en Ubuntu, así que explique un poco más.

xdg-openrealmente debería poder hacer esto por defecto ... solo pasa la lista de argumentos al programa. ¡Vamos gente de freedesktop.org! :-)Respuestas:
En efecto. Podrías usar shell para evitar esto, así:
O, si lo quieres más robusto, prueba
fuente
find: paths must precede expression: -)..y recibí el mismo mensaje de error. En otro directorio, obtengoxdg-open: unexpected argument './foo.mp3'con o sin..Puedes probar:
ls *.mp3listará todos los archivos mp3 del directorio actual, cada uno en su propia línea, y la salida se canalizará a unwhilebucle que leerá el contenido de cada línea y abrirá ese contenido (que es el nombre de un archivo mp3 en este caso ) en su aplicación predeterminada.fuente
-rbandera. Creo que esto es necesario para analizar correctamente los archivos con un `\` en su nombre.man readno tiene ninguna bandera en la lista, también! No obtengo un error en mis pruebas, pero probablemente sea porque creéaaayaa\a. En este caso,xdg-opensolo intenta abriraaados veces, y noaa\a. (De acuerdo, se está volviendo un poco complicado, pero creo que el código debería funcionar para todas las situaciones. Quizásfindsea una mejor opción, para evitar las limitaciones delsyread.) Además, ¿cómo puede causar estragos exactamente? ¿No solo va a analizar la salida dels?man readestá refiriendo a la lectura de la función C (sección 2 del hombre). Estereades un comando bash incorporado, por lo que debe buscar enman bashalgún lugar en la línea 4632. @Sparhawk: gracias por editarlo.Escribí un pequeño script
/usr/local/bin/o, aunque podría llamarlo/usr/local/bin/xdg-openy reemplazar el comando predeterminado si lo desea (suponiendo que$PATHle dé prioridad). Además, si no se le da ningún argumento, este script abrirá el directorio actual.Si no desea abrir el directorio actual sin argumentos, esto conserva el comportamiento predeterminado, es decir, muestra el uso.
NB esto es agnóstico acerca de la capacidad del programa predeterminado para analizar múltiples argumentos, pero en su lugar llamará a cada comando una vez por cada argumento. No creo que haya una forma elegante de evitar esto, ya que los usuarios pueden querer
xdg-opendiferentes tipos de archivos, y algunos comandos no tomarán múltiples argumentos de todos modos.fuente
Escribí este
bashscript para cubrir todos los casos de uso que se me ocurrieron:caracteristicas:
max=20 open $(ls -Q)all=1 open $(ls -Q)fuente
Aquí hay una frase:
Como tengo instalado VLC (y por defecto para mp3), esto abre todos los archivos mp3 en un directorio con VLC para mí. Este no es ningún tipo de " solución universal para resolverlo todo y trabajar en todos los casos ", pero debería funcionar.
Explicación:
ls -AQpenumera "casi todos" los archivos, citando los nombres de los archivos y agregando barras a los nombres de los directorios. Reemplace-pcon--file-typesi también desea excluir enlaces simbólicos. Cita en caso de espacios en los nombres de archivo.grep "\.mp3\"$"selecciona solo archivos que terminan con ".mp3" (más comillas dobles).xargsredirige todo el lote al programa que devuelve el siguiente subshell.subshell:
xdg-mime query default audio/mpegda el nombre predeterminado de la aplicación en formato "app.desktop" para archivos cuyo mime esaudio/mpeg. Puede verificar mimetype para cualquier archivo en su entorno conxdg-mime query filetype /path/to/file. Obtuve "audio / mpeg" para archivos mp3.grep -oP '.+(?=\.desktop)'obtiene la "aplicación" de "app.desktop".Si lo va a usar con mucha frecuencia en un sistema que no va a cambiar mucho, puede acortarlo a esto:
Donde se reemplaza
default_appcon el programa real que se abre con los archivos. Puede averiguar su nombre con esto:xdg-openNo funcionará con este problema, ya que solo acepta un argumento por diseño. Si lo usaxargs -n1, es probable que vaya a la pared con el hecho de que la aplicación resultante en cuestión podría abrir todos los archivos en una nueva instancia, lo que podría ponerse feo en más de una forma.fuente
Puedes usar estos comandos
solo si su reproductor de música admite varios archivos como argumentos de línea de comandos. Reemplace
vlccon su reproductor de música de elección.Esto funciona con RhythmBox y VLC en mis pruebas.
fuente
find...-execejecuta comandos individuales en cada archivo? Y también, si su reproductor de música admite varios archivos como argumentos de línea de comandos, puede usarlosvlc *.mp3.\+al finalfindsi vas a codificar devlctodos modos. (La pregunta sugiere que todos están en un directorio)+es suficiente, no es necesario\+.Use este comando para archivos mp3 si desea abrir archivos en VLC.
Nota: Use
cvlcpara usar VLC sin interfaz.fuente