我可以在文件的上下文選單中更改文件鎖定(“只讀”)狀態:
沒有為此的菜單項目。
如何建立 Finder(上下文)選單項目來更快地設定、刪除或切換此標誌?
答案1
您可以建立一個新的選單項,透過建立服務接收文件和資料夾作為輸入任何應用程式在自動機中。
您有兩個實施選項。選擇兩個 Automator 操作之一來建立服務工作流程:
- 運行外殼腳本
- 運行AppleScript
下面的程式碼實現了切換命令,因為它是最複雜的。
運行外殼腳本
此變體用於stat
讀取為檔案設定的標誌。這些值與通常透過運行顯示的值相同ls -lO
,但這stat
是讀取值的更清晰的解決方案。鎖定標誌或 的uchg
值為0x2
,因此這就是我們要檢查的內容。
chflags
用於更改值,並且growlnotify
,可選部分咆哮,用於顯示成功或錯誤訊息。
使用以下 bash 腳本程式碼片段作為「執行 Shell 腳本」操作的一部分:
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
配置接收輸入的操作作為參數。
運行AppleScript
使用以下 AppleScript 程式碼片段作為「運行 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
如果操作失敗(例如由於缺少權限),則會為每個無法變更的檔案顯示一個對話方塊。