Buat tautan simbolik di Mac OS X Finder


39

Apakah ada cara untuk mendapatkan fungsionalitas yang sama dengan perintah unix ln -sdi Mac OS X Finder (OS 10.5)? Saya ingin dapat membuat tautan simbolik saat bekerja di jendela Finder tanpa membuka Terminal.

Perhatikan bahwa Make Aliasperintah dalam Finder bukan yang saya inginkan karena alias itu tidak dapat dinavigasi di Terminal (tetapi tautan yang dibuat dengan ln -sdapat dinavigasi oleh Terminal dan Finder).


macOS benar-benar harus menyediakan ini sebagai fitur opt-in untuk pengguna listrik.
Andy

Jawaban:


16

Bagaimana dengan itu membuat tautan simbolis di Finder melalui AppleScript ?

Berikut skrip yang paling relevan di tautan itu:

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

Cukup rekatkan ke Editor AppleScript dan simpan sebagai aplikasi . Kemudian Anda dapat menyeretnya ke bilah alat pencari atau menautkannya di dok .


2
Komentar ke-2 di tautan itu, yang ditinggalkan oleh jonn8n, memberikan persis fungsionalitas yang saya cari. Meskipun, saya agak terkejut ini tidak mungkin di dalam Finder itu sendiri.
Michael Schneider

Tautan Anda busuk
Ben Leggiero

27

SymbolicLinker akan melakukan apa yang Anda cari, dan gratis.

teks alternatif


3
FWIW, SymbolicLinker masih berfungsi di Mavericks 10.9.3.
martineau

1
Tautan Anda mati. Apakah Anda menautkan ini? macupdate.com/app/mac/10433/symboliclinker
Ben Leggiero

SymbolicLinker sudah mati, setidaknya pada Mavericks.
Dave Land

Hanya catatan untuk mengonfirmasi bahwa ini masih berfungsi pada Mojave. Juga perlu dicatat bahwa tab Rilis di situs Github yang tertaut memiliki .dmg dengan instruksi layanan dan instalasi untuk menyimpannya sendiri.
Robin Macharg

2

Sebuah applescript di tautan yang disediakan oleh pengguna nuc menjawab pertanyaan saya. Berikut adalah applescript yang diproduksi ulang jika tautannya hilang.

Saya lebih suka skrip yang diberikan oleh komentator jonn8n, yang juga direproduksi sebagai artikel 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

Saya menyimpan ini sebagai aplikasi menggunakan Script Editor dan menyeret aplikasi ke bilah samping Finder sehingga sekarang saya dapat membuat tautan simbolis dengan menyeret file atau folder ke ikon aplikasi.



1

Gunakan Automator.app untuk membuat Layanan yang mengeksekusi skrip bash. Ini lebih sederhana daripada AppleScript dan lebih dapat diandalkan daripada menginstal perangkat lunak pihak ketiga.

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

Buat Symbolic Link.workflow

Kemudian Anda dapat mengakses perintah Make Symbolic Link di bawah menu Services :

masukkan deskripsi gambar di sini

Hasil:

masukkan deskripsi gambar di sini


0

Kemungkinan peningkatan pada skrip ini akan mengubah run handler untuk menggunakan file yang saat ini dipilih dari Finder, seperti:

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

Anda juga dapat mengedit [aplikasi] / Isi /Info.plist untuk ditambahkan

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

Tepat sebelum </dict> terakhir. Ini berarti aplikasi akan berjalan di latar belakang, dan tidak akan muncul ke depan ketika Anda mengkliknya.


0

Juga, di Snow Leopard di mana SymbolicLinker tidak berfungsi, Anda dapat membuat Layanan dengan Automator untuk melakukan perintah Terminal atau AppleScript untuk membuat tautan simbolik.


1
Sebenarnya SymbolicLinker tidak bekerja pada Snow Leopard sejak, setidaknya Desember 2009.
cregox

0

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

Coba cari di sini: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Ini sudah ada dalam OSX jika Anda menekan tombol kontrol ketika Anda mengklik sesuatu.


5
Hanya itu bukan tautan simbolis yang dibuat. Anda bisa cdmenjadi tautan simbolis ke folder, tetapi tidak ke alias Finder. Baca pertanyaannya, sudah menyatakan ini. (Moderator: Kami mungkin ingin membiarkan jawaban ini tidak masuk, untuk mencegah jawaban lebih lanjut di sepanjang baris ini)
Daniel Beck

5
@aniel Saya ragu itu akan banyak membantu mencegah, karena jawaban di baris ini biasanya berasal dari orang yang tidak membaca. : P
cregox
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.