¿Es posible etiquetar un archivo o carpeta en disidentes mediante un comando de terminal?
terminal
mavericks
finder-tag
macos
GedankenNebel
fuente
fuente
Respuestas:
Puedes usar xattr. Esto copia las etiquetas del archivo1 al archivo2:
xattr -wx com.apple.metadata:_kMDItemUserTags "$(xattr -px com.apple.metadata:_kMDItemUserTags file1)" file2;xattr -wx com.apple.FinderInfo "$(xattr -px com.apple.FinderInfo file1)" file2
Las etiquetas se almacenan en una lista de propiedades como una sola matriz de cadenas:
Si la bandera kColor en com.apple.FinderInfo no está activada, Finder no muestra los círculos para los colores. Si el indicador kColor está configurado en naranja y el archivo tiene la etiqueta roja, Finder muestra círculos rojos y naranjas. Puede configurar el indicador kColor con AppleScript:
xattr -w com.apple.metadata:_kMDItemUserTags '("Red\n6","new tag")' ~/desktop/file4;osascript -e 'on run {a}' -e 'tell app "Finder" to set label index of (POSIX file a as alias) to item 1 of {2, 1, 3, 6, 4, 5, 7}' -e end ~/desktop/file4
xattr -p com.apple.FinderInfo file|head -n1|cut -c28-29
imprime el valor de los bits utilizados para el indicador kColor. El rojo es C, el naranja es E, el amarillo es A, el verde es 4, el azul es 8, el magenta es 6 y el gris es 2. La bandera que agregaría 1 a los valores no se usa en OS X.Editar: también puedes usar la etiqueta :
La etiqueta se puede instalar con
brew install tag
osudo port install tag
.fuente
Es posible manipular etiquetas mediante comandos de bash puro. No hay necesidad de una utilidad de "etiqueta" de terceros.
Este comando enumera todas las etiquetas de un archivo ($ src):
Y así es como puede agregar una etiqueta ($ newtag) a un archivo ($ src):
Aquí hay un pequeño script de shell que exporta una función de "etiquetas". Uso:
La función podría extenderse fácilmente para admitir la eliminación también.
fuente
xattr -wx
comando falla cuando el archivo ya no tiene ninguna etiqueta. ¿Cómo puedo evitar esto?xattr -px …
comando que has dado para mostrar las etiquetas en una de mis carpetas da el siguiente resultado:"language:Objective-C\n2"
(salto de línea)"platform:iOS\n4"
. Honestamente, si va a envolver su código de shell moderadamente complejo en una función bash, simplemente está duplicando el esfuerzo de la etiqueta , que tiene la ventaja de estar bien mantenido por la comunidad.