72 votes

"Couldn't find a file descriptor referring to the console" sur Ubuntu bash sur Windows

Je suis nouveau ici et c'est mon premier message.

J'ai un problème avec Bash sur Ubuntu sous Windows. Si je tape "open (filename)" sur le terminal Mac, il ouvre le fichier avec le bon programme mais si j'essaie de l'utiliser sur Windows bash, il dit : "Couldn't find a file descriptor referring to the console".

J'ai également essayé xdg-open et gnome-open mais aucun d'entre eux ne fonctionne. Quelqu'un peut-il m'expliquer comment résoudre ce problème et comment fonctionne la commande open ?
Merci d'avance !

1 votes

Vous pouvez essayer d'utiliser la commande du fichier batch start . Cependant, il s'agit d'une commande interne à cmd . Vous devez donc l'emballer comme cmd /c start "" "filename"

0 votes

Cela ne fonctionne pas pour moi :/

0 votes

Quelle erreur voyez-vous avec la commande mentionnée ci-dessus ? BTW, vous pouvez avoir besoin de convertir les chemins de Windows à Linux ou vice versa.

71voto

Sharath BJ Points 551

Au lieu d'ouvrir, vous pouvez utiliser xdg-open qui fait la même chose, indépendamment de l'application, c'est-à-dire pdf, image, etc. Il ouvre un nouveau terminal virtuel (j'ai essayé sous Linux).

Exemple :

xdg-open ~/Pictures/Wallpapers/myPic.jpg

xdg-open ~/Docs/holidays.pdf

42voto

Lance Points 331

Pour linux, utilisez xdg-open . ouvrir est pour Mac OS. ouvrir sous linux est un alias d'openvt (open virtual terminal).

Pour le simplifier, vous pouvez ajouter la ligne suivante à ~/.bashrc ou ~/.zshrc selon le shell que vous utilisez.

alias o="xdg-open" # o stands for open 

La prochaine fois, vous pourrez taper ce qui suit pour réduire les frappes de clavier.

o file_name.pdf

1 votes

Hors sujet : Je définis aussi mes commandes à distance de cette façon ! s montre les travaux en cours p imprime la sortie la plus récente o affiche le fichier

0 votes

On peut aussi définir open comme un alias ou une fonction pour que tous vos scripts normaux fonctionnent de la même manière sous OS X et Linux. github.com/fatso83/dotfiles/commit/

24voto

hcheung Points 1287

C'est parce que open est une commande spécifique à Mac, elle n'est pas disponible sous Linux (ubuntu), Mac open peut exécuter un fichier (si le fichier est exécutable), ou ouvrir le fichier dans un éditeur de texte (si c'est un document ou un fichier texte) ou ouvrir un répertoire.

0 votes

C'est logique. Mais il y a une commande similaire sur Linux et Ubuntu appelée "xdg-open" donc je pense qu'il y a un moyen de l'implémenter sur Windows bash aussi @hcheung. Je viens d'installer le paquet xdg-utils mais il ouvre les fichiers et les dossiers dans bash. Existe-t-il un moyen d'ouvrir des fichiers via des programmes Windows ?

0 votes

Je suis sans fenêtre depuis plus de 10 ans ! J'espère que quelqu'un pourra m'aider.

0 votes

J'ai un /bin/open sur mon système d'exploitation Linux. Il existe en effet un open cmd pour Linux.

4voto

Nathan Kulzer Points 89

Sous Linux, le open est un alias de la commande openvt qui exécute une commande dans un nouveau terminal virtuel. Les terminaux virtuels sont ouverts par la console. La console n'aime répondre qu'aux terminaux réels ( pas terminaux émulés), donc la console n'a pas donné au terminal émulé son FD de contrôle. Essayez d'exécuter la commande de votre visualisateur jpg, pdf, ... directement dans votre terminal. (Essayez sudo openvt -f -s -c 7 -- echo hi dans un vrai Linux CtrlAlt3+ terminal.

Comme d'autres l'ont souligné, sur Mac, open fait ce que l'on suppose qu'il fait. Je ne suis pas un utilisateur de Mac, je ne peux donc pas développer ce paragraphe.

Cependant, Windows possède sa propre version de ces commandes : start example.txt ouvre le bloc-notes, start example.docx court Word, vous voyez l'idée. Cependant, Windows est Windows, donc start peut être aussi intelligent que le écrivains de mise à jour : start "my file.txt" ouvre une fenêtre d'invite de commande intitulée my file.txt .

1 votes

Peut-être que Windows devrait trouver comment PAS ennuyer les utilisateurs.

0voto

Pour ouvrir un fichier à écrire dans Ubuntu on Windows bash, vous pouvez taper - :

nano nomdefichier.txt

La commande ci-dessus vous permettra d'écrire/éditer dans le fichier après quoi, vous pouvez utiliser ctrl+x puis appuyez sur 'y' pour sauvegarder. Vérifiez/visualisez le contenu du fichier en utilisant - :

chat nomdefichier.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X