Как я могу открыть окно терминала прямо из моего текущего местоположения Finder?


111

Мне было интересно, можно ли было щелкнуть правой кнопкой мыши внутри любого окна «Finder», чтобы у меня была опция «Открыть терминал здесь». Это было бы действительно полезно.



4
этот сайт должен быть более подходящим местом, чтобы спросить
ericn

Ответы:


134

Начиная с Mac OS X Lion 10.7, Терминал предоставляет Сервисы для открытия нового окна терминала или вкладки в выбранной папке в Finder. Они также работают с абсолютными путями, выбранными в тексте (в любом приложении). Вы можете включить эти службы с помощью Системных настроек> Клавиатура> Сочетания клавиш> Службы . Ищите «Новый терминал в папке» и «Новая вкладка терминала в папке». Вы также можете назначить им сочетания клавиш.

Кроме того, теперь вы можете перетаскивать папки (и имена путей) на значок приложения «Терминал», чтобы открыть новое окно терминала, или на панель вкладок в окне терминала, чтобы создать новую вкладку в этом окне. Если вы перетащите на вкладку (а не в представление терминала), она выполнит полную cdкоманду, чтобы переключиться на этот каталог без какой-либо дополнительной печати.

Начиная с OS X Mountain Lion 10.8, перетаскивание команд в терминал также выполнит полную cdкоманду.

Примечание. Служба «Новый терминал в папке» станет активной при выборе папки в Finder . Вы не можете просто открыть папку и запустить службу «на месте». Вернитесь в родительскую папку, выберите соответствующую папку, затем активируйте службу через меню «Сервисы» или контекстное меню.


2
«Кроме того, теперь вы можете перетаскивать папки (и имена путей) на значок приложения терминала, чтобы открыть новое окно терминала», - вы издеваетесь? это потрясающе! :)
Фил

3
В Mavericks 10.9.4 - ярлыки у меня не работают. Спасибо за подсказку Drag and Drop :)
Амар

1
@amar Не могли бы вы поделиться с нами, что вы сделали? Также сломанный для меня в 10.10
OJFord

2
@Olive - после обновления до ярлыков Yesomite у меня больше не работает :(
amar

4
Одна вещь, которую я заметил, и это с El Capitan, это то, что вы должны выбрать папку в Finder (один щелчок по папке, которую вы видите внутри Finder). Я ожидал, что это сработает, что он откроет окно терминала в текущей папке. На самом деле, вы должны выбрать папку в окне.
Sillygwailo

19

Решение ваших проблем называется Go2Shell, и оно делает именно то, что вы описываете. Вы можете найти его в App Store и, что самое приятное ... это абсолютно бесплатно.

Go2Shell


Если вы хотите использовать iTerm вместо Go2Shell, посмотрите этот ответ, чтобы открыть настройки . Или, короче говоря, введите, open -a Go2Shell --args configчтобы вызвать конфигурацию.
Jeromy Anglim

@jherran, кажется, теперь все в порядке
Colas

1
Последняя версия не может быть установлена ​​через магазин приложений, но с их сайта zipzapmac.com/Go2Shell или с помощью brew cask install go2shell.
Fiedl

мне удалось установить последнюю версию v1.2.2 из магазина приложений Apple / Itunes, которая отлично работала
вычислительная техника

14

Другой подход: DTerm , который дает вам плавающую командную строку в верхней части окна. Это работает во многих приложениях, а не только в Finder.


13

CDT кажется, что это именно то, что вам нужно. Это мини-приложение, предназначенное для размещения на панели инструментов Finder, при запуске которого открывается окно терминала и cdв текущую директорию в Finder.


10

Для тех, кто использует iTerm, синтаксис AppleScript изменился в iTerm версии 3. Вот полная процедура, которую необходимо выполнить, чтобы создать ярлык в Finder.

  1. Запустить Automator.

  2. Выберите «Приложение»:

иллюстрация инструкций

  1. Выберите «Запустить Applescript»:

введите описание изображения здесь

  1. Вставьте код ниже:

    -- get the current directory in Finder
    on run {input, parameters}
        tell application "Finder"
            set _cwd to quoted form of (POSIX path of (folder of the front window as alias))
        end tell
        CD_to(_cwd)
    end run
    
    -- change directory in iTerm (version >= 3)
    on CD_to(_cwd)
        tell application "iTerm"
            activate
    
            try
                set _window to first window
            on error
                set _window to (create window with profile "Default")
            end try
    
            tell _window
                tell current session
                    write text "cd " & _cwd & ";clear;"
                end tell
            end tell
        end tell
    end CD_to

введите описание изображения здесь

  1. Нажмите «Файл» -> «Экспорт», чтобы экспортировать как .app, сохранить его в /Applications.

  2. Переместите приложение на панель значков Finder, удерживая :

введите описание изображения здесь

Готово !

Вы можете изменить значок в Finder, следуя приведенным здесь инструкциям (измените значок приложения, созданного с помощью Automator).


9

Я в основном использую эту функцию:

cf() {
  cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
}

Вы также можете назначить ярлык для скрипта, как показано ниже.

Повторно использовать существующую вкладку или создать новое окно (Терминал):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if (exists window 1) and not busy of window 1 then
        do script "cd " & quoted form of p in window 1
    else
        do script "cd " & quoted form of p
    end if
    activate
end tell

Повторно используйте существующую вкладку или создайте новую вкладку (Терминал):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    if busy of window 1 then
        tell application "System Events" to keystroke "t" using command down
    end if
    do script "cd " & quoted form of p in window 1
end tell

Всегда создавайте новую вкладку (iTerm 2):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "iTerm"
    if exists current terminal then
        current terminal
    else
        make new terminal
    end if
    tell (launch session "Default") of result to write text "cd " & quoted form of p
    activate
end tell

Первые два скрипта имеют несколько преимуществ по сравнению с сервисами, добавленными в 10.7:

  • Начиная с 10.9, существует ошибка, из-за которой службы, которые получают папки в качестве входных данных, никогда не отображаются в меню служб в представлении столбцов. Если назначить вкладку «Новый терминал» в службе папок сочетанием клавиш, она не будет работать в представлении столбцов.
  • Они используют папку в строке заголовка вместо того, чтобы требовать, чтобы вы сначала выбрали папку.
  • Они повторно используют переднюю вкладку, если она не занята, например, запуска команды, отображения страницы руководства или запуска emacs.

Если вы используете 10.7 или 10.8, измените tell application "Finder" to set p to POSIX path of (insertion location as alias)на:

tell application "Finder"
    if exists Finder window 1 then
        set p to POSIX path of (target of Finder window 1 as alias)
    else
        set p to POSIX path of (path to desktop)
    end if
end tell

В 10.7 и 10.8 есть ошибка (но не в 10.9 или 10.6), когда Finder игнорирует окна, созданные после последнего перемещения фокуса в другое приложение и обратно при получении insertion locationсвойства.



3

Вы можете перетащить любой файл или папку из поиска в окно терминала, чтобы вставить строку с указанным абсолютным путем к указанному файлу или папке.

Это будет работать при любой стандартной установке (по крайней мере, до 10.4 Tiger [ ¿возможно раньше? ]) Без необходимости в дополнительном программном обеспечении с нашими изменениями предпочтений, любое из которых может позже испугать вашего нетехого друга, если это окажется его / ее Mac, над которым вы работаете. Этот прием также работает для любого процесса, который выполняется в Терминале, например, emacs или vi (при условии, что у вас есть vi в соответствующем режиме, или, тем не менее, это делают люди, использующие vi).


3

Попробуйте это: https://github.com/nmadhok/OpenInTerminal

Он работает с элементами боковой панели Finder, множеством папок / файлов и всем, что только можно придумать. Действительно прост в использовании!


Хорошо работает с высокой сьеррой!
Ивелин



1

Вы можете приложение, которое я разработал FinderGo , который с открытым исходным кодом и простой в использовании



-1

 

    OpenTerminal


1
. Мертвая ссылка :( Это причина , почему ссылка только ответы имеют короткий срок или следует регулярно проверять , чтобы остаться в живых.
дан

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