Finder tiene columnas por las que puede ordenar los archivos: nombre, tamaño, tipo, fecha, comentario, etc. Estos se muestran como encabezados cuando Finder está en modo "Lista", con las propiedades de archivo respectivas que se muestran a continuación.
mdls
muestra FOO y Finder muestra FOO.mdls
muestra "BAR", ¡pero Finder 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, el comentario se establece en una lista de propiedades binarias que contiene el valor. Entonces, ¿tal vez sea 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 hex
es de hecho 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
mdls
usa su base de datos para mostrar la información del archivo, no los atributos extendidos que se establecen en ese archivo. Entonces, para que funcione, debe importar el archivo a su base de datos después de cambiar xattr
con:
mdimport /path/to/file
Para ver el comentario de actualización en Finder, puede 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\""
Usar como./script.sh path_to_file "Comment"
El usuario puede encontrar una mejor versión de ese script en StackOverflowl'L'l
.
adelante