I'm new in here and it's my first post.
I have a problem with Bash on Ubuntu on Windows. If I type "open (filename)" on Mac terminal, it opens the file with the right program but if I try to use it on Windows bash, it says: "Couldn't find a file descriptor referring to the console".
I have also tried xdg-open and gnome-open but none of them works. Can someone explain how to fix the issue and how open command works?
Thanks in advance!
For linux, use xdg-open. open is for Mac OS. open in linux is an name alias of openvt (open virtual terminal).
To simplify it, you can append the following line to ~/.bashrc or ~/.zshrc depends on the shell you are using.
Then next time you can just type like the following to reduce some keyboard strokes.
o file_name.pdf
Instead of open u can use
xdg-open
which does the same thing, independently of application i.e. pdf, image, etc. It will open a new virtual terminal (I have tried this on Linux)Example:
xdg-open ~/Pictures/Wallpapers/myPic.jpg
xdg-open ~/Docs/holidays.pdf
On Linux, the
open
command is an alias foropenvt
, which runs a command in a new virtual terminal. The virtual terminals are opened by the console. The console only likes to respond to real terminals (not emulated terminals), so the console did not give the emulated terminal it's control FD. Try running your jpg, pdf, ... viewer's command directly in your terminal. (Trysudo openvt -f -s -c 7 -- echo hi
in your CtrlAlt3+ terminal.As others have pointed out, on Mac, open does do what you would assume it does. I am not a Mac user, so I can't extend this paragraph.
That's because
open
is a Mac specific command, it is not available under Linux (ubuntu), Macopen
can execute a file (if the file is executable), or open the file into a text editor (if it is a document or text file) or open a directory.