Создайте символическую ссылку в Mac OS X Finder


39

Есть ли способ получить ту же функциональность, что и команда unix ln -sв Mac OS X Finder (OS 10.5)? Я хочу иметь возможность создавать символические ссылки во время работы в окнах Finder без открытия терминала.

Обратите внимание, что Make Aliasкоманда в Finder не то, что я хочу, потому что эти псевдонимы не могут быть перемещены в Терминале (но ссылки, созданные с помощью, ln -sмогут перемещаться как Терминалом, так и Finder).


macOS действительно должен предоставить эту возможность для опытных пользователей.
— Энди

Ответы:


16

Как насчет того, чтобы создавать символические ссылки в Finder через AppleScript ?

Вот наиболее актуальный скрипт в этой ссылке:

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

Просто вставьте его в редактор AppleScript и сохраните как приложение . После этого вы можете перетащить его на вашей находку панели инструментов или связать его на скамью подсудимых .


2
Второй комментарий по этой ссылке, оставленный jonn8n, дает именно ту функциональность, которую я искал. Хотя я немного удивлен, что это невозможно в самом Finder.
— Майкл Шнайдер

Ваша ссылка гнилая
— Бен Легжеро

27

SymbolicLinker сделает именно то, что вы ищете, и это бесплатно.

альтернативный текст


3
FWIW, SymbolicLinker по-прежнему работает в Mavericks 10.9.3.
— Мартино

1
Ваша ссылка мертва. Вы ссылались на это? macupdate.com/app/mac/10433/symboliclinker
— Бен Легжеро

SymbolicLinker мертв, по крайней мере, как Маверикс.
— Дейв Лэнд

Просто примечание, чтобы подтвердить, что это все еще работает на Мохаве. Также стоит отметить, что на вкладке Releases на связанном сайте Github есть файл .dmg с инструкциями по обслуживанию и установке, чтобы сохранить его самому.
— Робин Мачарг

2

Яблочный скрипт по ссылке, предоставленной пользователем nuc, ответил на мой вопрос. Вот яблочный скрипт, воспроизведенный на случай, если эта ссылка исчезнет.

Я предпочел сценарий, данный комментатором jonn8n, который также был воспроизведен как статья 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

Я сохранил это как приложение с помощью редактора сценариев и перетащил приложение на боковую панель Finder, чтобы теперь я мог создавать символические ссылки, перетаскивая файлы или папки на значок приложения.



1

Используйте Automator.app для создания службы, которая выполняет сценарий bash. Это проще, чем AppleScript, и надежнее, чем установка стороннего программного обеспечения.

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

Создайте символическую ссылку

Затем вы можете получить доступ к команде Make Symbolic Link из меню Services :

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

Результат:

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


0

Возможным улучшением этого сценария было бы изменение обработчика запуска для использования выбранных в данный момент файлов из Finder, например:

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

Вы также можете отредактировать [application] /Contents/Info.plist для добавления

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

Прямо перед последним </ dict>. Это будет означать, что приложение будет работать в фоновом режиме и не будет отображаться сразу после нажатия на него.


0

Кроме того, в Snow Leopard, где SymbolicLinker не работает, вы можете создать Сервис с Automator для выполнения команды Terminal или AppleScript для создания символической ссылки.


1
На самом деле SymbolicLinker работает над Snow Leopard, по крайней мере, с декабря 2009 года.
— cregox

0

Еще один 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

Попробуйте поискать здесь: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Это уже встроено в OSX, если вы нажимаете клавишу управления, когда нажимаете на что-то.


5
Только это не символическая ссылка, которая создана. Вы можете cdв символическую ссылку на папку, но не в псевдоним Finder. Прочитайте вопрос, это уже заявляет это. (Модераторы: мы могли бы оставить этот неотвеченный ответ во избежание дальнейших ответов по этому вопросу)
— Даниэль Бек

5
@daniel Я сомневаюсь, что это сильно помешает, так как ответы в этой строке обычно приходят от не читающих людей. : P
— cregox
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.