Cambio de metadatos de archivo de CLI que se mostrará en el Finder

2

El Finder tiene columnas en las que puede ordenar los archivos por: Nombre, Tamaño, Tipo, Fecha, Comentario, etc. Estos se muestran como encabezados cuando el Finder está en modo "Lista", con las propiedades de archivo respectivas que se muestran a continuación.

  • Si escribo un archivo + I y cambio los comentarios a FOO, mdls muestra FOO y Finder muestra FOO.
  • Si configuro Comentarios en BAR desde la Terminal, mdls muestra "BAR", pero ¡El Buscador aún muestra "FOO"!

¿Cómo puedo cambiar el campo "Comentario" de la Terminal para que el cambio se propague al Finder?

$ xattr -w com.apple.metadata:kMDItemFinderComment "BAR" test.txt
$ mdls test.txt
kMDItemFinderComment = "BAR"

Actualización : noté que al usar Finder / AppleScript, Comment se establece en una Lista de propiedades binarias que contiene el valor. ¿Entonces tal vez es posible eludir AppleScript y aumentar el rendimiento?

<?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">
<string>My comment</string>
</plist>

Intenté editar la lista de propiedades y devolverla a xattr . Sin embargo, xattr muestra el mensaje de error Odd-length string incluso si el tamaño del archivo de hex es en realidad un número par. ¿Alguien?

xattr -p com.apple.metadata:kMDItemFinderComment a | xxd -r -p | plutil -convert xml1 -o plist -
nano plist
cat plist | plutil -convert binary1 -o - - | xxd -p -c 999 -u > hex
xattr -w -x com.apple.metadata:kMDItemFinderComment hex test.txt
    
pregunta forthrin 23.03.2018 - 12:18

1 respuesta

1

mdls usa su base de datos para mostrar información del archivo, no atributos extendidos que se configuran en ese archivo. Por lo tanto, para que funcione, debe importar el archivo a su base de datos después de cambiar el xattr con:

mdimport /path/to/file

Para ver el comentario de actualización en el Finder, puedes usar AppleScript. Aquí está el código:

#!/bin/bash                                                                                                                                                                                                     

filepath="$1"
comment="$2"

/usr/bin/osascript -e "set filepath to POSIX file \"$filepath\"" \
-e "set theFile to filepath as alias" \
-e "tell application \"Finder\" to set the comment of theFile to \"$comment\""

Puede encontrar una mejor versión de ese script en StackOverflow por el usuario l'L'l .

    
respondido por el Mateusz Szlosek 23.03.2018 - 13:04

Lea otras preguntas en las etiquetas