Jak mogę otworzyć okno Terminal bezpośrednio z mojej bieżącej lokalizacji Findera?

111

Zastanawiałem się, czy jest coś, co mogę kliknąć prawym przyciskiem myszy w dowolnym oknie okna „Findera”, tak że mam opcję „Otwórz terminal tutaj”. To byłoby naprawdę pomocne.

łódź do włosów
źródło
5
Istnieje wiele odpowiedzi na podobne pytanie dotyczące przepełnienia stosu .
Rob Kennedy,
4
ta strona powinna być bardziej odpowiednim miejscem do zapytania
ericn

Odpowiedzi:

134

Począwszy od systemu Mac OS X Lion 10.7, Terminal zapewnia usługi otwierania nowego okna lub karty terminala w wybranym folderze w Finderze. Działają również z bezwzględnymi ścieżkami wybranymi w tekście (w dowolnej aplikacji). Możesz włączyć te usługi za pomocą Preferencji systemowych> Klawiatura> Skróty klawiaturowe> Usługi . Poszukaj „Nowy terminal w folderze” i „Nowa karta terminalu w folderze”. Możesz także przypisać im klawisze skrótów.

Ponadto możesz teraz przeciągać foldery (i ścieżki) na ikonę aplikacji Terminal, aby otworzyć nowe okno terminalu, lub na pasek kart w oknie terminalu, aby utworzyć nową kartę w tym oknie. Przeciągnięcie na kartę (zamiast do widoku terminala) spowoduje wykonanie pełnego cdpolecenia, aby przejść do tego katalogu bez żadnego dodatkowego wpisywania.

Począwszy od OS X Mountain Lion 10.8, przeciąganie poleceń do terminala spowoduje również wykonanie pełnego cdpolecenia.

Uwaga: usługa Nowy terminal w folderze stanie się aktywna po wybraniu folderu w Finderze . Nie można po prostu otworzyć folderu i uruchomić usługi „na miejscu”. Wróć do folderu nadrzędnego, wybierz odpowiedni folder, a następnie aktywuj usługę za pomocą menu Usługi lub menu kontekstowego.

Chris Page
źródło
2
„Ponadto możesz teraz przeciągać foldery (i ścieżki) na ikonę aplikacji Terminal, aby otworzyć nowe okno terminala” - żartujesz sobie? to cudownie! :)
phil
3
W Mavericks 10.9.4 - skróty nie działają dla mnie. Dzięki za wskazówkę Drag and Drop :)
amar
1
@amar Czy możesz podzielić się z nami tym, co zrobiłeś? Również złamane dla mnie w 10.10
OJFord
2
@Olive - po aktualizacji do Yesomite skróty już nie działały dla mnie :(
amar
4
Jedną rzeczą, którą zauważyłem, i to w przypadku El Capitan, jest to, że musisz wybrać folder w Finderze (pojedyncze kliknięcie folderu, który widzisz w Finderze). Spodziewałem się, że zadziała to: otworzy okno Terminalu w bieżącym folderze. W rzeczywistości musisz wybrać folder w oknie.
sillygwailo,
19

Rozwiązanie problemów nazywa się Go2Shell i robi dokładnie to, co opisujesz . Możesz go znaleźć w App Store, a co najważniejsze ... jest całkowicie darmowy.

Go2Shell

z4mba
źródło
Jeśli chcesz używać iTerm zamiast z Go2Shell, zapoznaj się z tą odpowiedzią, aby wyświetlić preferencje . Lub w skrócie, wpisz, open -a Go2Shell --args configaby wywołać konfigurację.
Jeromy Anglim,
@herherran wydaje się być teraz w porządku
Colas
1
Najnowsza wersja nie może zostać zainstalowana za pośrednictwem sklepu z aplikacjami, ale z ich witryny zipzapmac.com/Go2Shell lub przez brew cask install go2shell.
fiedl
udało mi się zainstalować najnowszą wersję v1.2.2 ze sklepu Apple / Itunes, działającą idealnie
ComputingFreak
14

Inne podejście: DTerm , które daje swobodny wiersz polecenia w górnej części okna. Działa to w wielu aplikacjach, nie tylko w Finderze.

jtbandes
źródło
13

cdto wydaje się być tym, czego potrzebujesz. Jest to mini-aplikacja, zaprojektowana do umieszczenia na pasku narzędzi Findera, po uruchomieniu otworzy okno terminala i cddo bieżącego katalogu w Finderze.

Mark Szymański
źródło
10

Dla tych, którzy używają iTerm, składnia AppleScript uległa zmianie w iTerm w wersji 3. Oto pełna procedura, którą należy wykonać, aby utworzyć skrót w Finderze.

  1. Uruchom Automator.

  2. Wybierz „Aplikacja”:

ilustracja instrukcji

  1. Wybierz „uruchom Applescript”:

wprowadź opis zdjęcia tutaj

  1. Wklej poniższy kod:

    -- 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

wprowadź opis zdjęcia tutaj

  1. Kliknij „Plik” -> „Eksportuj”, aby wyeksportować jako .app, zapisz go /Applications.

  2. Przenieś aplikację na pasek ikon Findera, przytrzymując :

wprowadź opis zdjęcia tutaj

Gotowy !

Możesz zmienić ikonę w Finderze, postępując zgodnie z instrukcjami tutaj (zmień ikonę aplikacji utworzonej za pomocą Automatora).

vmarquet
źródło
9

Najczęściej używam tej funkcji:

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

Możesz także przypisać skrót do skryptu, takiego jak te poniżej.

Ponownie użyj istniejącej karty lub utwórz nowe okno (Terminal):

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

Użyj ponownie istniejącej karty lub utwórz nową kartę (Terminal):

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

Zawsze twórz nową kartę (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

Pierwsze dwa skrypty mają kilka zalet w porównaniu z usługami dodanymi w wersji 10.7:

  • Od wersji 10.9 występuje błąd polegający na tym, że usługi otrzymujące foldery jako dane wejściowe nigdy nie są wymienione w menu usług w widoku kolumny. Jeśli przypiszesz nową kartę Terminal w usłudze Folder skrót klawiaturowy, nie będzie działać w widoku kolumny.
  • Korzystają z folderu na pasku tytułu, zamiast wymagać najpierw wybrania folderu.
  • Używają ponownie pierwszej karty, jeśli nie jest zajęta, np. Uruchamiając polecenie, wyświetlając stronę podręcznika lub uruchamiając emacsa.

Jeśli używasz wersji 10.7 lub 10.8, zmień tell application "Finder" to set p to POSIX path of (insertion location as alias)na:

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

Wystąpił błąd w 10.7 i 10.8 (ale nie w 10.9 lub 10.6), w którym Finder ignoruje okna utworzone po ostatnim przeniesieniu fokusu do innej aplikacji iz powrotem podczas uzyskiwania insertion locationwłaściwości.

Lri
źródło
3

Możesz przeciągnąć dowolny plik lub folder z wyszukiwarki do okna terminala, aby wstawić ciąg bezwzględnej ścieżki do tego pliku lub folderu.

Będzie to działać na każdej standardowej instalacji (przynajmniej wstecz do 10.4 Tygrysa [ ¿może wcześniej? ]) Bez potrzeby dodatkowego oprogramowania, które zmieniamy preferencje, które może później przerazić twojego nietechnicznego przyjaciela, jeśli okaże się, że to jego / jej Mac, nad którym pracujesz. Ta sztuczka działa również w przypadku dowolnego procesu uruchomionego w Terminalu, np. Emacs lub vi (zakładając, że masz vi w odpowiednim trybie, ale robią to również ludzie, którzy używają vi).

roosto
źródło
3

Spróbuj tego: https://github.com/nmadhok/OpenInTerminal

Działa z elementami paska bocznego Findera, wieloma wybranymi folderami / plikami i wszystkim, co tylko możesz wymyślić. Naprawdę łatwy w użyciu!

nmadhok
źródło
Działa dobrze z wysoką sierrą!
Ivelin
2

ShellHere

http://etresoft.org/shellhere.html - Etresoft i John Daniel

… Kliknij prawym przyciskiem myszy dowolne wystąpienie okna „Finder”…

Nie wiem, czy można to osiągnąć poprzez menu kontekstowe, ale trzymam ShellHere na pasku narzędzi Findera .

Graham Perrin
źródło
Link nie działa
Ivelin
1

Możesz opracować aplikację FinderGo , która jest open source i łatwa w użyciu

onmyway133
źródło
-1

 

    OpenTerminal

ohho
źródło
1
Dead link :(. To jest powód, dla którego odpowiedzi tylko na link mają krótki okres użytkowania lub powinny być regularnie sprawdzane, aby pozostać przy życiu.
Dan
@ Daniel Zastąpiony archiwum.org link
grg