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


46

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

$ open yourfilehere.txt

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


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

> start yourfilehere.txt

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


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


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


-1

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.