Создайте символическую ссылку в 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

Path Finder добавляет это к вашему 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 для создания символической ссылки.

beiju
источник
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
LRI
источник
-1

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

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

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