Existe uma maneira de definir o rótulo colorido de um arquivo para alguma cor quando estiver no Terminal?
Eu sei que o comando a seguir lista algumas informações sobre qual é a cor atualmente, mas não consigo descobrir como fazer algo sobre isso. Como mudar isso.
mdls -name kMDItemFSLabel somefile.ext
A razão pela qual gostaria de saber é que desejo marcar recursivamente todos os arquivos em uma pasta de um determinado tipo com uma determinada etiqueta colorida (no meu caso, cinza).
Eu sei como fazer a descoberta:
find . -name "*.ext"
E sei como posso executar o comando posteriormente para cada arquivo usando -exec
, mas preciso saber como fazer a rotulagem real ...
Eu gostaria de uma solução que envolva apenas comandos embutidos no Mac OS X. Portanto, de preferência, nada de terceiros, a menos que não haja outra maneira.
osascript -e "diga ao app \" Finder \ "para definir o índice do rótulo do arquivo POSIX (\" / junk.txt \ ") para 1"
fonte
osascript -e "tell app \"Finder\" to set label index of POSIX file (\"/junk.txt\") to 1
E se junk.txt for realmentemy full/path/with spaces.txt
armazenado em uma variável chamada$fileName
Eu tentei inúmeras sintaxes e aspas simples, aspas duplas ... e nenhuma delas funcione.File\ with\ Spaces.txt
Aqui está a minha versão, baseada nos dois de @Lauri e @Robert. Você especifica a cor usando o nome da cor, não o número. Os nomes das cores são consistentes com a saída de
hfsdata -L
, então você usa "Nenhuma" para atribuir nenhuma cor ao arquivo. Salve isso em um arquivo chamado "setlabel" e façachmod 755 setlabel
.fonte
Para visualizá-los no Finder (eu sei, não o que você pediu), você pode usar xattr -l ou xattr -p com.apple.FinderInfo, você obtém uma bandeira entre os zeros (1E), dos quais os bits inferiores são os cor .. Com coisas de terceiros: hfsdebug (use com sudo) para obter muitas informações, entre as quais uma etiqueta de cor legível.
Para alterá-los com coisas de terceiros: osxutils possui um comando setlabel.
fonte
Isso usaria a mesma ordem para as cores do Finder.
O stderr é redirecionado porque a conversão de um caminho relativo em um alias resulta em um aviso como CFURLGetFSRef que foi passado nesta URL que não possui esquema na versão 10.8. stdout é redirecionado porque o osascript imprime o valor da última expressão.
fonte
Adoro esses scripts, no entanto, eles não estavam trabalhando para meus arquivos que usavam espaços em seus nomes até eu alterar a configuração do IFS para bash no script, também alterei a entrada do arquivo para aceitar um arquivo de texto com uma lista de nomes de arquivos:
fonte
Aqui estão dois artigos que descrevem como fazer isso usando o AppleScript, que por sua vez, pode ser chamado na linha de comando.
Como definir o rótulo de cores via Terminal ou AppleScript
e
marcar arquivos com cores no os-x finder a partir de scripts de shell .
fonte