可以在Mac OS X Finder中用顏色標記文件和文件夾。 有沒有辦法從shell腳本來做到這一點?在OS X Finder中使用顏色標記文件從shell腳本中使用
回答
這個shell腳本需要的文件或文件夾的名稱作爲其第一個參數,標籤指數(0沒有標籤,1代表紅色,...,7代表灰色)作爲第二個參數。
#!/bin/sh
osascript -e "tell application \"Finder\" to set label index of alias POSIX file \"`cd -P -- "$(dirname -- "$1")" && printf '%s\n' "$(pwd -P)/$(basename -- "$1")"`\" to $2"
更直接地,如果$ filename是與該文件或文件夾的絕對路徑名shell變量將被標記和$標籤和該標籤索引號shell變量,
osascript -e "tell application \"Finder\" to set label index of alias POSIX file \"$filename\" to $label"
是將標籤分配給文件或文件夾的shell命令。
一種醜陋的方式做到這一點是:
exec osascript <<\EOF
tell app "Finder"
-- [...]
-- selecting the file
-- [...]
-- 4 is Blue
set label index of thisItem to 4
end tell
基本上推出使用取景器來設置顏色一個AppleScript。
我從提示:
(彩色)http://www.macosxhints.com/article.php?story=20070602122413306
(殼牌)http://www.macosxhints.com/article.php?story=20040617170055379
基於這裏的答覆,並在引用的文章中,我提出了以下功能並將其添加到我的~/.bash_profile
文件:
# Set Finder label color
label(){
if [ $# -lt 2 ]; then
echo "USAGE: label [0-7] file1 [file2] ..."
echo "Sets the Finder label (color) for files"
echo "Default colors:"
echo " 0 No color"
echo " 1 Orange"
echo " 2 Red"
echo " 3 Yellow"
echo " 4 Blue"
echo " 5 Purple"
echo " 6 Green"
echo " 7 Gray"
else
osascript - "[email protected]" << EOF
on run argv
set labelIndex to (item 1 of argv as number)
repeat with i from 2 to (count of argv)
tell application "Finder"
set theFile to POSIX file (item i of argv) as alias
set label index of theFile to labelIndex
end tell
end repeat
end run
EOF
fi
}
還有在osxutils包中的命令行工具「setlabel」。它不需要AppleScript或Finder正在運行。
這將使用與Finder相同的顏色順序。
#!/bin/bash
if [[ $# -le 1 || ! "$1" =~ ^[0-7]$ ]]; then
echo "Usage: labelfile ..." 1>&2
exit 1
fi
colors=(0 2 1 3 6 4 5 7)
n=${colors[$1]}
shift
osascript - "[email protected]" <<END > /dev/null 2>&1
on run arguments
tell application "Finder"
repeat with f in arguments
set f to (posix file (contents of f) as alias)
set label index of f to $n
end repeat
end tell
end
END
我重定向STDERR,因爲我在10.8有像2012-09-06 13:50:00.965 osascript[45254:707] CFURLGetFSRef was passed this URL which has no scheme (the URL may not work with other CFURL routines): test.txt
警告。 STDOUT被重定向,因爲osascript輸出最後一個表達式的值。
這裏有一個快速的Python腳本我寫道:
https://github.com/danthedeckie/finder_colors
這臺從命令行文件夾和文件的顏色。
用法:
finder_colors.py red /Users/daniel/src
設置/用戶/丹尼爾/ src目錄是紅色。
finder_colors.py /Users/daniel/src
返回顏色(在本例中爲'紅')。如果您正在編寫python腳本,則可以將finder_colors作爲模塊導入,並直接使用它(finder_colors.get(...)和finder_colors.set(...)。
- 1. 在shell腳本中使用gimp顏色到alpha腳本
- 2. 在PackageMaker中使用腳本(Mac OS X)
- 3. Mac OS X Finder如何確定標題顏色?
- 4. 使用終端在啓動時運行shell腳本? (Mac OS X)
- 5. 從OS X Dock執行Shell腳本?
- 6. 如何在OS X Finder中有條件地着色文件和文件夾?
- 7. Java中的Mac OS X Finder標籤
- 8. 在shell腳本中使用$ -
- 9. 你能從shell腳本實現OS X的Finder下載進度條嗎?
- 10. 如何在OS X上的Ruby腳本中使用shell中的Bash別名?
- 11. 想使用shell腳本追加兩個文件中的記錄
- 12. 使用python腳本更改python文件中的字體\顏色
- 13. 在android中使用Jsoup在腳本標記中獲取文本
- 14. 使用shell腳本在不同文件夾中的FTP文件
- 15. Shell腳本從文件讀取變量並在perl腳本中使用
- 16. 在Mac OS shell腳本中使用日期
- 17. 使用腳本在Photoshop中清除顏色樣本
- 18. 使用shell腳本從文件中提取獨特的行塊
- 19. 我應該在ejs文件中使用腳本標記嗎?
- 20. 在Finder中移動文件使用AppleScript
- 21. 使用unix shell腳本從文件中刪除單行
- 22. 使用export命令從shell腳本文件中更改PATH
- 23. 如何獲取Mac上由Finder用顏色標記的文件列表?
- 24. Mac OS X中的shell腳本從主目錄運行?
- 25. OS X shell腳本:如何暫停執行,直到Finder重新啓動後?
- 26. 使用shell腳本
- 27. 如何使用lame在shell腳本中編碼wav文件?
- 28. CGI腳本,保存`printf`使用終端(OS X),以文件
- 29. Mac OS X:在finder + App Sandbox中打開文件
- 30. 在shell腳本中標記字符串
如果文件名包含雙引號或以反斜槓結尾。 – 2010-03-14 00:27:34
@Kevin:任何解決方案? – Svish 2010-07-28 18:37:18
@Kevin:另外...爲什麼你會有一個包含雙引號的文件名?我認爲這是無效的...或者只是在Windows中...... – Svish 2010-07-28 18:43:38