Przez alias rozumiem skrót do folderu utworzony po kliknięciu folderu prawym przyciskiem myszy w Finderze i wybraniu „Utwórz alias”. Mogę przemierzać linki symboliczne w Terminalu z cd
, ale nie działa na aliasów: bash: cd: example-alias: Not a directory
. Czy w terminalu można zmienić katalog na miejsce docelowe aliasu?
9
Odpowiedzi:
Aby włączyć cd'ing do aliasu folderu, znalazłem następujące informacje w Mac OS X Hints .
Skompiluj poniższy kod źródłowy za pomocą następującego polecenia:
Spowoduje to utworzenie pliku wykonywalnego „getTrueName” w tym samym katalogu co źródło. Możesz dodać go do ŚCIEŻKI lub po prostu skopiować bezpośrednio do / usr / bin lub / usr / local / bin, aby był łatwo dostępny.
Kod źródłowy C dla getTrueName (skopiuj tekst i zapisz plik jako getTrueName.c w katalogu domowym):
Uwzględnij następujące elementy w ~ / .bash_profile lub utwórz nowy plik ~ / .bash_profile o następującej treści:
Prawdopodobnie musisz ponownie uruchomić Terminal, aby załadować zmodyfikowany plik .bash_profile.
Testowany w Yosemite 10.10.2 i gcc 4.2 (Xcode 6.2) i działa.
Podobne podejście jest dostępne na superuser.com
źródło
Nie testowałem odpowiedzi przez @klanomath, ale kiedyś była biblioteka Pythona, aby uzyskać cel aliasu, ale obsługa Carbon została usunięta z frameworków Apple. Można to zrobić w celu C, patrz https://stackoverflow.com/a/21151368/838253 .
Najlepiej jest użyć dowiązań symbolicznych, ale niestety Finder nie pozwala na ich utworzenie.
Napisałem usługę OS X, która tworzy dowiązania symboliczne (obsługiwane zarówno przez Findera, jak i Terminal). Spowoduje to uruchomienie następującego skryptu bash w przepływie pracy Findera. (Niestety nie wydaje się możliwe opublikowanie kodu Automatora w czytelnym formacie).
źródło
curFolder
ilinkFile
są nieużywane, więc dlaczego tam są? Wokół operatora porównania powinny być np. Spacje$fileExists == ""
i rozważyć użycie$(..)
zamiast starszego backticka.Oto moje zdanie na ten temat.
dodaj i załaduj tę funkcję do swojego .profile.
Aktualizacja.
Użyłem
builtin cd
linii pokazanej w odpowiedzi @klanomath, która pozwala zastąpić polecenie cd. Możemy więc teraz użyć:cd /path/to/example-alias
lub
cd /path/to/example
Funkcja powinna powrócić i cd do oryginalnej ścieżki oryginalnej aliasu lub zwykłej ścieżki.
źródło
Chociaż dowiązanie symboliczne (alias UNIX) wygląda tak samo jak alias Findera w Finderze, są to dwa zupełnie różne typy aliasów.
Łącze symboliczne utrzyma tylko ścieżkę, do której prowadzi, i zostanie trwale lub tymczasowo zerwane, jeśli zasób zostanie odpowiednio przeniesiony lub na odłączonym dysku lub współużytkowany.
Alias Findera jest technicznie zwykłym plikiem z instrukcjami dla Findera. Finder może wykorzystać te informacje do zlokalizowania do pewnego stopnia przeniesionego docelowego pliku / katalogu. Jeśli zasób docelowy aliasu znajduje się w zamontowanym sieciowym punkcie udostępniania, zawiera również informacje o tym, który element pęku kluczy służy do zalogowania się do punktu udostępniania w celu jego otwarcia.
Tak więc, dopóki nie napiszesz skryptu lub programu do odczytu pliku aliasu Findera, nie będzie on używał go jako katalogu, ale jako plik w terminalu.
Alternatywnie możesz usunąć bieżący alias Findera i utworzyć symboliczne łącze w jego miejscu. Poleceniem byłoby
ln -s /path/to/original
utworzenie dowiązania symbolicznego w bieżącym katalogu. Ścieżka może być ścieżką pełną lub względną.źródło
osascript[9807:7154723] CFURLGetFSRef was passed an URL which has no scheme (the URL will not work with other CFURL routines)
Za pomocą tej wskazówki zmodyfikowałem skrypt apple @ markunte, aby usunąć powyższy komunikat ostrzegawczy
źródło
Jak większość systemów operacyjnych (oprócz Windows), OS X obsługuje skrypty Bash. Najpierw utwórz plik na pulpicie (lub w dowolnej innej lokalizacji):
dotknij ~ / Desktop / PlexConnect.sh Następnie ustaw uprawnienia do pliku, aby był wykonywalny:
chmod + x ~ / Desktop / PlexConnect.sh Następnie możesz edytować zawartość skryptu za pomocą dowolnego edytora tekstowego, po prostu upewnij się, że zaczyna się on od następującego wiersza, aby system wiedział, że można go uruchomić za pomocą powłoki (Bash):
! / bin / bash
Plik można następnie kliknąć dwukrotnie, uruchamiając Terminal i wykonując go.
Bardziej eleganckim rozwiązaniem tego może być jednak utworzenie aplikacji AppleScript, która uruchomi polecenie za Ciebie. Otwórz aplikację „Script Editor” i wklej w następujący sposób:
wykonaj skrypt powłoki „/Applications/PlexConnect-master/PlexConnect.py” z uprawnieniami administratora Zapisz to jako „aplikację”, nadając mu dowolną nazwę. Po otwarciu wyświetli się standardowe hasło OS X, uruchom skrypt, a następnie zamknij się.
źródło