Utwórz symboliczne łącze w Finderze Mac OS X.


39

Czy istnieje sposób na uzyskanie takiej samej funkcjonalności jak polecenie unix ln -sw Mac OS X Finder (OS 10.5)? Chcę mieć możliwość tworzenia dowiązań symbolicznych podczas pracy w oknach Findera bez otwierania terminalu.

Zauważ, że Make Aliaspolecenie w Finderze nie jest tym, czego chcę, ponieważ tymi aliasami nie można nawigować w Terminalu (ale łącza utworzone za pomocą ln -smogą być nawigowane zarówno przez Terminal, jak i Finder).


macOS naprawdę powinien udostępnić tę opcję jako opcję opt-in dla zaawansowanych użytkowników.
Andy

Odpowiedzi:


16

Co z tworzeniem dowiązań symbolicznych w Finderze za pomocą AppleScript ?

Oto najbardziej odpowiedni skrypt w tym linku:

on run
    open {choose file with prompt "Choose a file to create a symbolic link:" without invisibles}
end run

on open the_files
    repeat with i from 1 to (count the_files)
        try
            set posix_path to POSIX path of (item i of the_files)
            if posix_path ends with "/" then set posix_path to text 1 thru -2 of posix_path
            do shell script "ln -s " & quoted form of posix_path & " " & quoted form of (posix_path & ".sym")
        end try
    end repeat
end open

Po prostu wklej go do AppleScript Editor i zapisz jako aplikację . Następnie możesz przeciągnąć go nad pasek narzędzi wyszukiwarki lub połączyć w doku .


2
Drugi komentarz do tego linku, pozostawiony przez jonn8n, daje dokładnie funkcjonalność, której szukałem. Chociaż jestem nieco zaskoczony, że nie jest to możliwe w samym Finderze.
Michael Schneider,

Twój link jest zgniły
Ben Leggiero

27

SymbolicLinker zrobi dokładnie to, czego szukasz, i to za darmo.

alternatywny tekst


3
FWIW, SymbolicLinker nadal działa w Mavericks 10.9.3.
martineau

1
Twój link jest martwy. Link do tego? macupdate.com/app/mac/10433/symboliclinker
Ben Leggiero

SymbolicLinker nie żyje, przynajmniej od Mavericks.
Dave Land

Notatka potwierdzająca, że ​​nadal działa to w Mojave. Warto również zauważyć, że karta Wydania w połączonej witrynie Github ma plik .dmg z instrukcją obsługi i instalacji, aby zaoszczędzić na budowaniu go samodzielnie.
Robin Macharg,

2

AppleScript w linku dostarczonego przez użytkownika Nuc odpowiedział na moje pytanie. Oto reprodukcja jabłka w przypadku, gdy link zniknie.

Wolałem skrypt podany przez komentatora jonn8n, który został również odtworzony jako artykuł Macworld .

on run
    open {choose file with prompt ¬
        "Choose a file to create a symbolic link:" without invisibles}
end run
on open the_files
    repeat with i from 1 to (count the_files)
        try
            set posix_path to POSIX path of (item i of the_files)
            if posix_path ends with "/" then set posix_path to ¬
                text 1 thru -2 of posix_path
            do shell script "ln -s " & quoted form of posix_path ¬
                & " " & quoted form of (posix_path & ".sym")
        end try
    end repeat
end open

Zapisałem to jako aplikację za pomocą edytora skryptów i przeciągnąłem aplikację na pasek boczny Findera, dzięki czemu mogę teraz tworzyć dowiązania symboliczne, przeciągając pliki lub foldery na ikonę aplikacji.



1

Użyj Automator.app, aby utworzyć usługę wykonującą skrypt bash. Jest to prostsze niż AppleScript i bardziej niezawodne niż instalowanie oprogramowania innych firm.

for f in "$@"
do
    ln -s "$f" "$f.symlink"
done

Utwórz symboliczny link.workflow

Następnie możesz uzyskać dostęp do polecenia Utwórz symboliczne łącze w menu Usługi :

wprowadź opis zdjęcia tutaj

Wynik:

wprowadź opis zdjęcia tutaj


0

Możliwym ulepszeniem tego skryptu może być zmiana modułu obsługi uruchamiania w celu korzystania z aktualnie wybranych plików z Findera, ponieważ:

on run
    tell application "Finder" to set sel to selection
    open sel
end run
on open the_files
    repeat with i from 1 to (count the_files)
        try
            set posix_path to POSIX path of (item i of the_files as alias)
            if posix_path ends with "/" then set posix_path to ¬
                text 1 thru -2 of posix_path
            try
                do shell script "ln -s " & quoted form of posix_path ¬
                    & " " & quoted form of (posix_path & ".sym")
            on error
                try
                    do shell script "ln -s " & quoted form of posix_path ¬
                        & " " & quoted form of (posix_path & ".sym") with administrator privileges

                end try
            end try
        end try
    end repeat
end open

Możesz także edytować [aplikację] /Contents/Info.plist, aby dodać

<key>LSUIElement</key>
<true/>

Tuż przed ostatnim </dict>. Oznaczałoby to, że aplikacja działałaby w tle i nie pojawiałaby się na pierwszym planie po kliknięciu.


0

Ponadto w systemie Snow Leopard, w którym SymbolicLinker nie działa, możesz utworzyć usługę za pomocą Automatora, aby wykonać polecenie Terminal lub AppleScript, aby utworzyć łącze symboliczne.


1
W rzeczywistości SymbolicLinker działa na
systemie

0

Jeszcze jeden AS:

tell application "Finder"
    repeat with f in (get selection)
        set p to POSIX path of (f as text)
        set p2 to POSIX path of (desktop as text) & name of f
        do shell script "ln -s " & quoted form of p & " " & quoted form of p2
    end repeat
end tell

-1

Spróbuj poszukać tutaj: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Jest to wbudowane w OSX już po naciśnięciu klawisza sterującego po kliknięciu na coś.


5
Tyle że nie jest to dowiązanie symboliczne, które zostało utworzone. Możesz cdprzejść do symbolicznego łącza do folderu, ale nie do aliasu Findera. Przeczytaj pytanie, to już stwierdza. (Moderatorzy: Być może chcielibyśmy zostawić tę odpowiedź bez odpowiedzi, aby zapobiec dalszym odpowiedziom w tym kierunku)
Daniel Beck

5
@ Daniel Wątpię, by to znacznie zapobiegło, ponieważ odpowiedzi w tym wierszu zwykle pochodzą od osób nie czytających. : P
cregox
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.