J'ai essayé d'ouvrir tous mes fichiers .mp3 à partir d'un dossier en utilisant xdg-open
mais j'ai découvert qu'il n'en ouvre qu'un seul! J'ai donc cherché un peu mais il n'y avait pas une telle question! J'ai trouvé "evince" mais apparemment, il ouvre des fichiers texte et gnome-open ouvre également un fichier.
Je souhaite ouvrir tous les fichiers du même format dans un dossier du terminal. Je suis nouveau sur Ubuntu, veuillez expliquer un peu plus.
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! :-)Réponses:
En effet. Vous pouvez utiliser shell pour contourner cela, comme ceci:
Ou, si vous le voulez plus robuste, essayez
la source
find: paths must precede expression: -
)..
et a obtenu le même message d'erreur. Dans un autre répertoire, je reçoisxdg-open: unexpected argument './foo.mp3'
avec ou sans.
.Tu peux essayer:
ls *.mp3
liste tous les fichiers mp3 du répertoire courant, chacun sur sa propre ligne, et la sortie est dirigée vers unewhile
boucle qui lit le contenu de chaque ligne et il ouvrira ce contenu (qui est le nom d'un fichier mp3 dans ce cas ) dans son application par défaut.la source
-r
drapeau. Je pense que cela est nécessaire pour analyser correctement les fichiers avec un `\ 'dans leur nom.man read
n'a pas de drapeaux du tout aussi! Je n'ai pas d'erreur dans mes tests, mais c'est probablement parce que j'ai crééaaa
etaa\a
. Dans ce cas,xdg-open
essaie juste d'ouvriraaa
deux fois, et nonaa\a
. (D'accord, cela devient un peu compliqué, mais je pense que le code devrait fonctionner pour toutes les situations. Peutfind
- être est-ce une meilleure option, pour éviter les limitations dels
etread
.) De plus, comment peut-il faire des ravages exactement? N'est-ce pas seulement pour analyser la sortie dels
?man read
se réfère à la fonction C lue (section 2 de l'homme). Ilread
s'agit d'une commande bash intégrée, vous devriez donc regarderman bash
quelque part à la ligne 4632. @Sparhawk - merci pour edititng.J'ai écrit un petit script
/usr/local/bin/o
, bien que vous puissiez simplement l'appeler/usr/local/bin/xdg-open
et remplacer la commande par défaut si vous le souhaitez (en supposant que votre$PATH
lui donne la priorité). De plus, s'il ne reçoit aucun argument, ce script ouvrira le répertoire actuel à la place.Si vous ne voulez pas ouvrir le répertoire courant sans argument, cela conserve le comportement par défaut, c'est-à-dire montre l'utilisation.
NB ceci est indépendant de la capacité du programme par défaut à analyser plusieurs arguments, mais appellera à la place chaque commande une fois pour chaque argument. Je ne pense pas qu'il existe un moyen élégant de contourner cela, car les utilisateurs peuvent vouloir
xdg-open
différents types de fichiers, et certaines commandes ne prendront pas de multiples arguments de toute façon.la source
J'ai écrit ce
bash
script pour couvrir tous les cas d'utilisation auxquels je pouvais penser:Caractéristiques:
max=20 open $(ls -Q)
all=1 open $(ls -Q)
la source
Voici un one-liner:
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 estaudio/mpeg
. Vous pouvez vérifier mimetype pour tout fichier dans votre environnement avecxdg-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:
Où vous remplacez
default_app
le programme réel qui ouvre les fichiers. Vous pouvez trouver son nom avec ceci:xdg-open
ne fonctionnera pas avec ce problème, car il accepte un seul argument par la conception. Si vous utilisezxargs -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.la source
Vous pouvez utiliser ces commandes
uniquement si votre lecteur de musique prend en charge plusieurs fichiers comme arguments de ligne de commande. Remplacez-le
vlc
par votre lecteur de musique de choix.Cela fonctionne avec RhythmBox et VLC dans mes tests.
la source
find
...-exec
des commandes individuelles sur chaque fichier? Et aussi, si votre lecteur de musique prend en charge plusieurs fichiers comme arguments de ligne de commande, vous pouvez simplement les utiliservlc *.mp3
.\+
à la finfind
si vous allez coder en dur devlc
toute façon. (La question suggère qu'ils sont tous dans un seul répertoire.)+
assez, pas besoin\+
.Utilisez cette commande pour les fichiers mp3 si vous souhaitez ouvrir des fichiers dans VLC.
Remarque: Utilisez
cvlc
pour utiliser VLC sans interface.la source