Mục menu ngữ cảnh để khóa / mở khóa tệp trong Finder nhanh hơn


3

Tôi có thể thay đổi trạng thái khóa tệp ("chỉ đọc") trong menu ngữ cảnh của tệp:

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

Không có mục menu cho việc này.

Làm cách nào tôi có thể tạo một mục menu Finder (ngữ cảnh) để đặt, xóa hoặc chuyển cờ này nhanh hơn?

Câu trả lời:


4

Bạn có thể tạo một mục menu mới thực hiện điều đó bằng cách tạo một Dịch vụ nhận tệp và thư mục làm đầu vào trong bất kỳ ứng dụng nào trong Automator.

Bạn có hai lựa chọn thực hiện. Chọn một trong hai hành động của Trình tự động hóa để xây dựng quy trình dịch vụ với:

  • Chạy Shell Script
  • Chạy AppleScript

Mã dưới đây thực hiện lệnh Toggle , vì nó phức tạp nhất.

Chạy Shell Script

Biến thể này sử dụng statđể đọc các cờ được đặt cho tệp. Đây là những giá trị giống như thường được hiển thị bằng cách chạy ls -lO, nhưng statlà một giải pháp sạch hơn để đọc các giá trị. Cờ bị khóa, hoặc uchg, có giá trị 0x2, vì vậy đó là những gì chúng tôi đang kiểm tra.

chflagsđược sử dụng để thay đổi giá trị và growlnotify, một phần tùy chọn của Growl , được sử dụng để hiển thị thông báo lỗi hoặc thành công.

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

Sử dụng đoạn mã bash script sau đây như một phần của hành động Run Shell Script:

for f in "$@"
do
    let "$( stat -f "%f" "$f" ) & 0x2"
    if [ $? -ne 0 ] ; then
        chflags uchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to lock $f!"
        /usr/local/bin/growlnotify "Locked File" -m "$f was locked!"
    else
        chflags nouchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to unlock $f!"
        /usr/local/bin/growlnotify "Unlocked File" -m "$f was unlocked!"
    fi
done

Cấu hình hành động để nhận đầu vào làm đối số .

 Chạy AppleScript

Sử dụng đoạn mã AppleScript sau đây như một phần của hành động Chạy AppleScript:

on run {input, parameters}
repeat with f in input
        try
            tell application "Finder" to set locked of f to (not locked of f)
        on error errmsg
            tell application "Finder" to display alert errmsg
        end try
    end repeat
end run

Nếu hành động không thành công, ví dụ vì thiếu quyền, một hộp thoại sẽ được hiển thị cho mỗi tệp không được thay đổi.

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

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.