Linux эквивалентная команда для «открытой» команды на Mac / Windows?

46

Исходя из Mac OS X, вы можете набрать:

$ open yourfilehere.txt

и ваш файл откроется так же, как если бы вы открыли его из Finder.


В Windows можно ввести:

> start yourfilehere.txt

и он откроется так же, как если бы вы открыли его из Проводника.


В Ubuntu я хотел бы иметь возможность открывать файлы таким же образом в GNOME. Какая команда?

jweede
источник
1
В немного связанных я нашел этот маленький драгоценный камень, чтобы открыть Finder по определенному пути (не обязательно текущий путь): open -a Finder. или откройте -a Finder / ваш / путь / здесь
Mikko Ohtamaa
Я только что увидел, что в Windows это startпрограмма. На OS X это openпрограмма. На Ubuntu Linux это seeпрограмма. в книге automate-the-boring-stuff-with-python , но я не получил никакой информации о seeкоманде от Google.
CodyChan

Ответы:

39

xdg-open это то, что вы ищете.

Вам может понравиться этот фрагмент, который я вставил в свои файлы .bashrc, чтобы я мог использовать команды cygwin для windows, linux или OSX и использовать команды start или open, и они прекрасно работают:

case "$OSTYPE" in
   cygwin*)
      alias open="cmd /c start"
      ;;
   linux*)
      alias start="xdg-open"
      alias open="xdg-open"
      ;;
   darwin*)
      alias start="open"
      ;;
esac

Хорошие комментарии, xdg-open действительно лучший вариант, чем gnome-open, как описано ниже. Я обновил свои личные сценарии некоторое время назад, но забыл обновить этот ответ.

ВНИМАНИЕ: Это переопределит функциональность как openvt(виртуального терминала), так и startиз init.

Иордания
источник
1
Этот скрипт BASH - отличная идея.
jweede
9
cygwin: попробуйте "cygstart"
Даг Харрис
13
gnome-open специфичен для GNOME. xdg-open доступен на всех дистрибутивах, соответствующих Freedesktop.org.
Авди
@DougHarris, +1. cygstartможет быть более предпочтительным, так как в закладках Emacs он позволяет продолжать использовать Emacs. С start, мой Emacs заморожен.
Брейди Трейнор
Тогда начните хорошо, если вы не хотите полагаться на доступность Cygwin. start ""или "start \"\""просто работал на меня. (Набор цитат "" предотвращает зависание Emacs на процессе.)
Брейди Трейнор,
34
xdg-open xyz.bar

откроется xyz.bar(может быть файл или URL) в любой среде, совместимой с freedesktop, с приложением, зарегистрированным для этого xyz.barтипа. Смотрите также документацию здесь (man-страница xdg-open) .

В PRACTIVE это должно затем вызвать kde-open, gnome-open, exo-openили , возможно , даже open, в зависимости от текущей среды рабочего стола (KDE, Gnome, XFCE, OS X).

Акира
источник
3
тоже работает. Какая разница между xdg-openа gnome-open?
jweede
5
ну, xdg-open был разработан людьми freedesktop.org, которые утверждают, что он создал «стандарт», в то время как gnome-open был разработан людьми gnome .. который вы получаете только при установке gnome. Лично мне больше нравится материал freedesktop.org.
Акира
2
Действительно, xdg-open - правильный ответ. gnome-open относится только к рабочим столам с установленным GNOME. xdg-open будет доступен на любой freedesktop-совместимой системе.
Авди
2
«xdg-open будет доступен в любой системе, совместимой с freedesktop» означает на практике, что независимо от того, используете ли вы GNOME, KDE, Xfce или любую другую среду, все xdg-openбудет правильно , используя file-type-to -программное отображение работающей среды.
RavuAlHemio
Это почти эквивалентно команде Mac «открыть», но не совсем - я нахожу (по крайней мере в Ubuntu 14), что когда я использую ее в каталоге, каталог открывается в фоновом режиме. Я бы предпочел, чтобы это принесло недавно открытое окно впереди. Есть ли способ заставить это сделать это? (Простите, я
абсолютный
10

Вы даже можете написать небольшую оболочку вокруг gnome-open, чтобы открыть несколько файлов одной командой:

for i in $*
do
    gnome-open "$i"
done

Поместите это в скрипт оболочки с именем open и

open *.c

откроет все c файлы в текущем каталоге.

Ким
источник
2
Полезный скрипт, но вы захотите заменить $ * на «$ @» (включая кавычки), чтобы правильно обрабатывать имена файлов с пробелами.
pimlottc
1

Вы можете использовать gnome-openкоманду в вашем терминале. Попав в каталог, в котором вы хотите открыть окно ОС, введите в Терминале:

gnome-open .

Откроется окно, показывающее, что находится в этой папке. Аналогично, вы можете указать подпапку, расположенную в этом каталоге, заменив .ее именем на подпапку.

Обратите внимание, что если gnome-openне работает, возможно, его просто нужно установить. Вы можете сделать это с помощью Synaptic ( sudo apt-get updateа затем sudo apt-get install synapticв вашем терминале, что очень удобно при установке пакета, поскольку он правильно устанавливает все зависимости), или напрямую установить Gnome Shell в свой терминал:sudo apt-get install gnome-shell

LeChat
источник
-1

Введите это в терминал: ./yourfile

yourfileИмя файла, который вы хотите открыть или запустить. Вы также можете использовать эту команду для запуска скриптов bash. (Не забудьте ввести расширение файла!)

gnome-open это то, что вы ищете.

Еще одна цитата с другого автора.

user113907
источник