Cómo configurar los metadatos de "date agregada" en Mac OS X 10.7 Lion

El Finder en Mac OS X 10.7 Lion muestra una nueva porción de metadatos de files, "Fecha agregada", que rastrea la date en que se agregó un elemento a una carpeta. Después de actualizar a 10.7, ninguno de los elementos en mi carpeta ~/Downloads tiene valores de "Fecha de agregado". Me gustaría establecer todos los valores vacíos de "Fecha agregada" para que coincidan con los valores de "Fecha de modificación", pero no puedo encontrar la manera de configurar el atributo "Fecha agregada" a un valor específico.

Mi primera suposition fue esta:

  • ¿Cómo puedo cambiar el ancho pnetworkingeterminado de las columnas del Finder?
  • ¿Qué es un buen procesador de files RAW / Desarrollador / Editor para Mac?
  • ¿Es posible crear un usuario sin un directory de inicio?
  • identificando la actividad de networking de un process - Mac OS X Lion 10.7.3
  • La configuration del proxy no se saveá en el llavero
  • Las unidades no aparecen en el escritorio
  • xattr -w com.apple.metadata:kMDItemDateAdded "2012-02-19 16:34:47 +0000" myfile

    Pero eso no parece funcionar (aunque tampoco informa un error).

  • ¿Cuál es la location / ruta de los icons del buscador?
  • cómo revertir la installation Mac Apache por defecto a la original
  • Deja de download Lion desde App store
  • ¿Qué tan malo es para una Mac reiniciarlo a la fuerza cuando se congela?
  • ¿Cómo cambio la location de la captura de pantalla en OS X Lion?
  • Evitar que el escritorio remoto se vuelva a conectar a las conexiones perdidas después de despertar
  • 4 Solutions collect form web for “Cómo configurar los metadatos de "date agregada" en Mac OS X 10.7 Lion”

    OK, nuevo enfoque aquí. Precaución: no tengo un sistema actualizado a Lion (mi computadora viene con Lion instalado) por lo que no puedo probar esto. Código no probado; copy de security antes de probar este código !!!

    Mi respuesta anterior se basó en el order de sorting utilizado por la stack de descargas en el Dock. El campo Fecha de agregado en Finder parece basarse en la información de Spotlight, que es difícil de hackear. Tampoco es accesible a través de AppleScript. Pero, parece haber una solución.

    1. Crea un nuevo flujo de trabajo en Automator.

    2. Establezca el flujo de trabajo para aceptar files o carpetas desde Finder

    3. Haga que el flujo de trabajo ejecute un AppleScript.

    Usa este AppleScript:

     on run {input, parameters} do shell script "sudo /usr/sbin/systemsetup -setusingnetworktime Off" with administrator privileges tell application "Finder" repeat with x in input set myfile to POSIX path of x set nm to name of x set d to modification date of x set yr to (character 3 of (year of d as string)) & (character 4 of (year of d as string)) set mth to (month of d as number) as string if length of mth is 1 then set mth to "0" & mth set dy to day of d as string if length of dy is 1 then set dy to "0" & dy set h to hours of d as string if length of h is 1 then set h to "0" & h set m to minutes of d as string if length of m is 1 then set m to "0" & m set s to seconds of d as string if length of s is 1 then set s to "0" & s set dt to mth & ":" & dy & ":" & yr as string set tm to h & ":" & m & ":" & s as string do shell script "sudo /usr/sbin/systemsetup -setdate '" & dt & "'" with administrator privileges do shell script "sudo /usr/sbin/systemsetup -settime '" & tm & "'" with administrator privileges do shell script "mv \"" & myfile & "\" /var/tmp/clobber" do shell script "mv /var/tmp/clobber \"" & myfile & "\"" end repeat end tell do shell script "sudo /usr/sbin/systemsetup -setusingnetworktime On" with administrator privileges return input end run 

    Seleccione los files que todavía no tienen una Fecha agregada (ordere por Fecha agregada en el Finder, luego select la parte de la list sin una Fecha agregada) y ejecute este service.

    enter image description here

    Cuando ejecuto xattr -l en elementos en mi carpeta de Descargas, obtengo un campo que se ve así:

     com.apple.metadata:kMDItemDownloadedDate: 00000000 62 70 6C 69 73 74 30 30 A1 01 33 41 B4 83 4D BF |bplist00..3A..M.| 00000010 4C 4F E3 08 0A 00 00 00 00 00 00 01 01 00 00 00 |LO..............| 00000020 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 13 |.....| 00000035 

    Este es un plist binary. Cuando uso HexFiend para crear un file con esos bytes (sí, los ingresé manualmente, explosión del pasado como ingresar código ensamblador de una revista en mi Apple] [GS), y luego lo guardo como un file .plist, abrí el file en TextWrangler y obtuvo el siguiente xml sin comstackr:

     <?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> <date>2011-11-28T05:03:59Z</date> </array> </plist> 

    Dicho esto, aunque Apple parece almacenar las dates en XML comstackdo, el text sin formatting parece funcionar.

    En otras palabras, si puede get la date modificada del file en forma de cadena, puede ejecutar el command xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file para cambiar el " date descargada ", que parece ser el campo realmente orderado, no la date real agregada.

    Finalmente, no obtuvo ningún error al agregar el campo (no usado) kMDItemDateAdded porque, como aprendí en este artículo , xattr establecerá felizmente cualquier campo de metadatos que desee, usado o no.

    Ese es el núcleo de la respuesta. Trabajaré escribiendo un AppleScript para get la date modificada de cada file, verificará si kMDItemDownloadedDate está configurado, y si no lo está, establecerá kMDItemDownloadedDate en la date de modificación, pero quería que se publicara el núcleo de la respuesta. .

    No puedo encontrar una manera de configurar la "Fecha agregada" que se muestra en el Finder.

    Creo que tiene razón en que se recupera del atributo de metadatos kMDItemDateAdded del índice de kMDItemDateAdded . Sin embargo, Spotlight parece derivar esto de alguna manera.

    Intenté configurar un atributo de file extendido llamado com.apple.metadata:kMDItemDateAdded a un valor de date en uno de varios formattings diferentes, incluido el formatting utilizado por kMDItemDateAdded y ninguno de ellos fue seleccionado por el índice de Spotlight, es decir, sin importar cuál es el valor mostrado por xattr , el valor mostrado por mdls no ha cambiado.

    Supongo , aunque no estoy seguro, que Spotlight simplemente establece esta date en function de la primera vez que indexa un file en una location determinada y no verifica ningún otro metadato para generarla. Si extrae un file de Descargas y lo vuelve a ingresar, la Fecha de actualización se actualiza cuando se volvió a mover, pero ninguno de los metadatos del file parece afectado, solo los metadatos de Spotlight.

    Entonces, en resumen, creo que Date Added solo está almacenado en algún lugar en las tripas bastante crípticas de /.Spotlight-V100, y a less que alguien pueda encontrar una manera de decirle a Spotlight que actualice una input de metadatos a un valor arbitrario, puedo ' Veo una manera de hacer esto.

    ¡Gracias a Daniel Lawson por la solución! Todavía funciona bien, incluso dos años después.

    Tengo dos adiciones:

    1) Tenga en count que hay un pequeño error en el código de la respuesta aceptada.

    Esta línea:

     do shell script "/usr/sbin/systemsetup -settime ''" & tm & "'" 

    … tiene un apóstrofo adicional, lo que desencadena un error "EOF inesperado". Debe leer:

     do shell script "/usr/sbin/systemsetup -settime '" & tm & "'" 

    2) Más importante, comenzando con Mavericks 10.9.2, el sistema requiere derechos de administrador. Por lo tanto, cada llamada al script de shell debe seguir esta fórmula:

     do shell script "sudo /usr/sbin/systemsetup -setusingnetworktime Off" with administrator privileges 

    Aquí está la versión completa modificada de AppleScript, confirmada para funcionar en 10.9.3:

     on run {input, parameters} do shell script "sudo /usr/sbin/systemsetup -setusingnetworktime Off" with administrator privileges tell application "Finder" repeat with x in input set myfile to POSIX path of x set nm to name of x set d to modification date of x set yr to (character 3 of (year of d as string)) & (character 4 of (year of d as string)) set mth to (month of d as number) as string if length of mth is 1 then set mth to "0" & mth set dy to day of d as string if length of dy is 1 then set dy to "0" & dy set h to hours of d as string if length of h is 1 then set h to "0" & h set m to minutes of d as string if length of m is 1 then set m to "0" & m set s to seconds of d as string if length of s is 1 then set s to "0" & s set dt to mth & ":" & dy & ":" & yr as string set tm to h & ":" & m & ":" & s as string do shell script "sudo /usr/sbin/systemsetup -setdate '" & dt & "'" with administrator privileges do shell script "sudo /usr/sbin/systemsetup -settime '" & tm & "'" with administrator privileges do shell script "mv \"" & myfile & "\" /var/tmp/clobber" do shell script "mv /var/tmp/clobber \"" & myfile & "\"" end repeat end tell do shell script "sudo /usr/sbin/systemsetup -setusingnetworktime On" with administrator privileges return input end run 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).