как пометить сетевой файл, используйте яблочный скрипт - PullRequest
1 голос
/ 08 мая 2019

Я нашел решение, подобное этому,

#!/bin/bash
osascript -e "tell application \"Finder\" to set label index of alias POSIX file \"/Users/myname/Documents/example.txt\" to 2"

, чтобы пометить example.txt в моей папке «Документы» красным цветом.

Но когда я изменяю путь к файлу сети

например, файл на моем nas-сервере /Volumes/mynas_home/1.txt

и он сообщил

can't convert file "mynas_home:1.txt" to “integer” type

Я также пытался

#!/bin/bash
xattr -wx com.apple.FinderInfo "0000000000000000000C00000000000000000000000000000000000000000000" "/Volumes/mynas_home/1.txt"

и https://github.com/jdberry/tag для пометки цветовой метки Они обе работают, но они слишком медленные, чтобы отображать цветную метку для файла на nas-сервере.

Поэтому я все еще хочу использовать applecript tell application "Finder" to set label index of,но он не работает в сетевом файле.

Как решить эту проблему?

enter image description here

1 Ответ

1 голос
/ 08 мая 2019

У меня работает следующее:

osascript -e 'tell application "Finder" to set label index of (POSIX file "/path/to/filename.ext" as alias) to 2'

Обратите внимание, что использование одинарных кавычек ' против двойных кавычек ", окружающих команду , выполняемую osascript, устраняет обратную косую черту , экранирующую двойная кавычка \" в команде .

Итак, предполагая, что полный путь POSIX: /Volumes/mynas_home/1.txt

Тогда используйте:

osascript -e 'tell application "Finder" to set label index of (POSIX file "/Volumes/mynas_home/1.txt" as alias) to 2'

Также, как упомянуто в комментарии к OP vadian, используйте вместо этого путь HFS.

Обратите внимание, что в следующем примере, используя полное имя пути POSIX, предоставленное в OP и преобразованное в путь HFS, это может быть любой из следующих трех вариантов:

osascript -e 'tell application "Finder" to set label index of alias "mynas_home:1.txt" to 2'

или:

osascript -e 'tell application "Finder" to set label index of file "mynas_home:1.txt" to 2'

Или:

osascript -e 'tell application "Finder" to set label index of item "mynas_home:1.txt" to 2'

Как вы можете видеть в этом случае alias, file и item являются взаимозаменяемыми.

...