¿Es posible labelr una carpeta a través del terminal?

¿Es posible labelr un file o una carpeta en mavericks mediante el command terminal?

  • Añadir comentarios de Spotlight sin tags en OS X Mavericks
  • Colores de las tags de los Mavericks
  • ¿Cómo puedo eliminar las tags de Finder de todos los files de una carpeta y sus subcarpetas?
  • Cómo labelr files (con tags de Finder) usando partes de un nombre de file?
  • OS X Finder se bloquea en el labeldo
  • Etiquetas: mejores prácticas para el uso de tags para replace la estructura de carpetas jerárquicas
  • AppleShowAllFiles no muestra files ocultos
  • ¿Puedo usar GNU ps en OS X?
  • Ocultar sólo las extensiones de file .app, pero mostrar el rest
  • Las windows no se maximizan al abrirse
  • Cambiar la funcionalidad de la function y las teclas de control en macOS Sierra
  • ¿Por qué OS X requiere privilegios de administrador para desmontar una unidad del terminal usando `umount` pero no cuando usa Finder?
  • 2 Solutions collect form web for “¿Es posible labelr una carpeta a través del terminal?”

    Puede utilizar xattr. Esto copy las tags de file1 a file2:

    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 tags se almacenan en una list de properties como una sola matriz de cadenas:

     $ xattr -p com.apple.metadata:_kMDItemUserTags file3|xxd -r -p|plutil -convert xml1 - -o - <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <string>Red 6</string> <string>new tag</string> <string>Orange 7</string> <string>Yellow 5</string> <string>Green 2</string> <string>Blue 4</string> <string>Purple 3</string> <string>Gray 1</string> </array> </plist> <? xml version = "1.0" encoding = "UTF-8"?> $ xattr -p com.apple.metadata:_kMDItemUserTags file3|xxd -r -p|plutil -convert xml1 - -o - <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <string>Red 6</string> <string>new tag</string> <string>Orange 7</string> <string>Yellow 5</string> <string>Green 2</string> <string>Blue 4</string> <string>Purple 3</string> <string>Gray 1</string> </array> </plist> 

    Si el indicador kColor de com.apple.FinderInfo está desactivado, Finder no muestra los círculos para los colors. Si el indicador kColor está configurado en naranja y el file tiene la label roja, Finder muestra círculos rojos y anaranjados. 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. El indicador que añadiría 1 a los valores no se utiliza en OS X.

    Editar: también puedes usar tag :

     tag -l file # list tag -a tag1 file # add tag -s networking,blue file # set tag -r \* file # remove all tags tag -f green # find all files with the green tag tag -f \* # find all files with tags tag -m networking * # match (print files in * that have the networking tag) 

    tag se puede instalar con brew install tag o sudo port install tag .

     $ tag -h tag - A tool for manipulating and querying file tags. usage: tag -a | --add <tags> <file>... Add tags to file tag -r | --remove <tags> <file>... Remove tags from file tag -s | --set <tags> <file>... Set tags on file tag -m | --match <tags> <file>... Display files with matching tags tag -l | --list <file>... List the tags on file tag -f | --find <tags> Find all files with tags <tags> is a comma-separated list of tag names; use * to match/find any tag. additional options: -v | --version Display version -h | --help Display this help -n | --name Turn on filename display in output (default) -N | --no-name Turn off filename display in output (list) -t | --tags Turn on tags display in output (find, match) -T | --no-tags Turn off tags display in output (list) -g | --garrulous Display tags each on own line (list, find, match) -G | --no-garrulous Display tags comma-separated after filename (default) -H | --home Find tagged files only in user home directory -L | --local Find tagged files only in home + local filesystems (default) -R | --network Find tagged files in home + local + network filesystems -0 | --nul Terminate lines with NUL (\0) for use with xargs -0 

    Es posible manipular tags a través de commands bash puros. No hay necesidad de una tercera parte "label" util.

    Este command list todas las tags de un file ($ src):

     xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' \ xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' 

    Y aquí es cómo puede agregar una label ($ newtag) a un file ($ src):

     xattr -wx com.apple.metadata:_kMDItemUserTags \ "$(xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' | \ (cat -; echo \"$newtag\") | sort -u | grep . | tr '\n' ',' | sed 's/,$//' | \ sed 's/\(.*\)/[\1]/' | plutil -convert binary1 -o - - | xxd -p - -)" "$src" \ xattr -wx com.apple.metadata:_kMDItemUserTags \ "$(xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' | \ (cat -; echo \"$newtag\") | sort -u | grep . | tr '\n' ',' | sed 's/,$//' | \ sed 's/\(.*\)/[\1]/' | plutil -convert binary1 -o - - | xxd -p - -)" "$src" sort -u | xattr -wx com.apple.metadata:_kMDItemUserTags \ "$(xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' | \ (cat -; echo \"$newtag\") | sort -u | grep . | tr '\n' ',' | sed 's/,$//' | \ sed 's/\(.*\)/[\1]/' | plutil -convert binary1 -o - - | xxd -p - -)" "$src" | xattr -wx com.apple.metadata:_kMDItemUserTags \ "$(xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' | \ (cat -; echo \"$newtag\") | sort -u | grep . | tr '\n' ',' | sed 's/,$//' | \ sed 's/\(.*\)/[\1]/' | plutil -convert binary1 -o - - | xxd -p - -)" "$src" \ xattr -wx com.apple.metadata:_kMDItemUserTags \ "$(xattr -px com.apple.metadata:_kMDItemUserTags "$src" | \ xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n' | \ (cat -; echo \"$newtag\") | sort -u | grep . | tr '\n' ',' | sed 's/,$//' | \ sed 's/\(.*\)/[\1]/' | plutil -convert binary1 -o - - | xxd -p - -)" "$src" 

    Aquí hay un pequeño script de shell que exporta una function "tags". Uso:

     tags <file> Lists all tags of a file tags -add <tag> <file> Adds tag to a file 

    La function podría ser fácilmente extender a la eliminación de apoyo también.

     tags() { # tags system explained: http://arstechnica.com/apple/2013/10/os-x-10-9/9/ local src=$1 local action="get" if [[ $src == "-add" ]]; then src=$3 local newtag=$2 local action="add" fi # hex -> bin -> json -> lines local hexToLines="xxd -r -p - - | plutil -convert json -o - - | sed 's/[][]//g' | tr ',' '\n'" # lines -> json -> bin -> hex local linesToHex="tr '\n' ',' | echo [\$(sed 's/,$//')] | plutil -convert binary1 -o - - | xxd -p - -" local gettags="xattr -px com.apple.metadata:_kMDItemUserTags \"$src\" 2> /dev/null | $hexToLines | sed 's/.*Property List error.*//'" if [[ $action == "get" ]]; then sh -c "$gettags" else local add="(cat -; echo \\\"$newtag\\\") | sort -u" local write="xattr -wx com.apple.metadata:_kMDItemUserTags \"\$($gettags | $add | grep . | $linesToHex)\" \"$src\"" sh -c "$write" fi } export -f tags 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).