Tạo một liên kết tượng trưng trong Mac OS X Finder


39

Có cách nào để có được chức năng tương tự như lệnh unix ln -strong Mac OS X Finder (OS 10.5) không? Tôi muốn có thể tạo các liên kết tượng trưng trong khi làm việc trong các cửa sổ Finder mà không cần mở Terminal.

Lưu ý rằng Make Aliaslệnh trong Finder không phải là điều tôi muốn vì các bí danh đó không thể được điều hướng trong Terminal (nhưng các liên kết được tạo có ln -sthể được điều hướng bởi cả Terminal và Finder).


macOS thực sự phải cung cấp tính năng này như một tính năng chọn tham gia cho người dùng có quyền lực.
Andy

Câu trả lời:


16

Điều gì về việc tạo liên kết tượng trưng trong Finder thông qua AppleScript ?

Đây là tập lệnh phù hợp nhất trong liên kết đó:

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

Chỉ cần dán nó vào AppleScript Editor và lưu nó dưới dạng một ứng dụng . Sau đó, bạn có thể kéo nó trên của công cụ tìm bạn thanh công cụ hoặc liên kết nó trên bến tàu .


2
Nhận xét thứ 2 tại liên kết đó, còn lại bởi jonn8n, cung cấp chính xác chức năng mà tôi đang tìm kiếm. Mặc dù, tôi hơi ngạc nhiên khi điều này là không thể trong chính Finder.
Michael Schneider

Liên kết của bạn bị mục nát
Ben Leggiero

27

SymbolicLinker sẽ thực hiện chính xác những gì bạn đang tìm kiếm và hoàn toàn miễn phí.

văn bản thay thế


3
FWIW, SymbolicLinker vẫn hoạt động trong Mavericks 10.9.3.
martineau

1
Liên kết của bạn đã chết. Bạn đã liên kết đến điều này? macupdate.com/app/mac/10433/symboliclinker
Ben Leggiero

SymbolicLinker đã chết, ít nhất là với Mavericks.
Dave Land

Chỉ cần một lưu ý để xác nhận rằng điều này vẫn hoạt động trên Mojave. Cũng đáng lưu ý rằng tab Phát hành trên trang Github được liên kết có tệp .dmg với dịch vụ và hướng dẫn cài đặt để tự lưu bản dựng.
Robin Macharg

2

Một applescript tại liên kết được cung cấp bởi người dùng nuc đã trả lời câu hỏi của tôi. Dưới đây là applescript sao chép trong trường hợp liên kết biến mất.

Tôi thích kịch bản được đưa ra bởi người bình luận jonn8n, cũng được sao chép dưới dạng bài viết của 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

Tôi đã lưu ứng dụng này dưới dạng một ứng dụng bằng Script Editor và kéo ứng dụng vào thanh bên Finder để bây giờ tôi có thể tạo các liên kết tượng trưng bằng cách kéo tệp hoặc thư mục vào biểu tượng ứng dụng.



1

Sử dụng Automator.app để tạo một Dịch vụ thực thi tập lệnh bash. Điều này đơn giản hơn AppleScript và đáng tin cậy hơn so với cài đặt phần mềm của bên thứ ba.

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

Tạo Link.workflow tượng trưng

Sau đó, bạn có thể truy cập lệnh Tạo liên kết tượng trưng trong menu Dịch vụ :

nhập mô tả hình ảnh ở đây

Kết quả:

nhập mô tả hình ảnh ở đây


0

Một cải tiến có thể có trong tập lệnh này sẽ là thay đổi trình xử lý chạy để sử dụng các tệp hiện được chọn từ Finder, như vậy:

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

Bạn cũng có thể chỉnh sửa [application] /Contents/Info.plist để thêm

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

Ngay trước khi </ dict> cuối cùng. Điều này có nghĩa là ứng dụng sẽ chạy ở chế độ nền và sẽ không xuất hiện trước khi bạn nhấp vào ứng dụng.


0

Ngoài ra, trong Snow Leopard nơi SymbolicLinker không hoạt động, bạn có thể tạo Dịch vụ với Automator để thực hiện lệnh Terminal hoặc AppleScript để tạo liên kết tượng trưng.


1
Trên thực tế SymbolicLinker hoạt động trên Snow Leopard kể từ, ít nhất là tháng 12 năm 2009.
cregox

0

Thêm một AS nữa:

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

Hãy thử tìm kiếm ở đây: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Điều này đã được tích hợp sẵn trong OSX nếu bạn nhấn phím điều khiển khi bạn nhấp vào thứ gì đó.


5
Chỉ có điều nó không phải là một liên kết tượng trưng được tạo ra. Bạn có thể cdvào một liên kết tượng trưng đến một thư mục, nhưng không vào bí danh Finder. Đọc câu hỏi, nó đã nêu điều này. (Người điều hành: Chúng tôi có thể muốn để lại câu trả lời không trả lời này, để ngăn câu trả lời tiếp theo trong dòng này)
Daniel Beck

5
@daniel Tôi nghi ngờ nó sẽ giúp ngăn chặn nhiều, vì câu trả lời trong dòng này thường đến từ những người không đọc. : P
cregox
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.