2 votos

En la terminal de macOS, ¿puedo mostrar la 'fecha de añadido', la fecha de creación y la marca de tiempo del último acceso de un archivo?

En la terminal de macOS, cuando escribo ls -l SomeFile.txt, muestra la mayoría de las propiedades del archivo, incluido su último sello de tiempo de modificación.

Sin embargo, en Finder, además de 'Fecha de modificación', también está 'Fecha de agregado' para cada archivo, es decir, el sello de tiempo cuando se agregó el archivo a la carpeta específica en la que se encuentra. ¿Hay alguna manera de leer o mostrar esto desde la terminal?

También, según entiendo, ¿la Fecha de Agregado es diferente a la fecha de creación del archivo? ¿Hay alguna manera de obtener su sello de tiempo de creación?

Por último, macOS también registra cuándo se accedió por última vez (se leyó) un archivo, ¿puedo obtener ese sello de tiempo también desde la terminal?

Así que, por ejemplo:

  1. Creo un archivo nuevo el 1 de diciembre.
  2. Modifico el archivo el 2 de diciembre.
  3. Abro (leo) el archivo el 3 de diciembre.
  4. Muevo el archivo a una carpeta diferente el 4 de diciembre.

Estoy buscando uno o más comandos de terminal para obtener estos cuatro sellos de tiempo particulares.

4voto

Michael Zhou Puntos 167

El comando mdls (lista de metadatos) podría ser lo que estás buscando.

mdls    -n kMDItemFSName \
        -n kMDItemContentCreationDate \
        -n kMDItemContentModificationDate \
        -n kMDItemDateAdded \
        -n kMDItemUsedDates \
           NOMBRE_DE_ARCHIVO

2voto

David Anderson Puntos 2189

La tabla a continuación muestra el atributo de metadatos que corresponde a la columna de vista de lista de la aplicación Finder. El atributo de metadatos se puede pasar al comando mdls para obtener la fecha apropiada. Sin embargo, la fecha no es con respecto a la ubicación actual.

Columna de Vista de Lista Finder

Atributo de Metadatos

Fecha de Agregado

kMDItemDateAdded

Fecha de Creación

kMDItemContentCreationDate

Fecha de Última Apertura

kMDItemLastUsedDate

Fecha de Modificación

kMDItemContentModificationDate

La función a continuación muestra las fechas de la aplicación Finder para nombres de archivos dados como entrada. Las fechas se convierten a la ubicación predeterminada de la computadora. Esta función fue probada en bash y zsh.

dates () {
  local d=() e=0 f="%+" i n x 
  d+=("Fecha de Agregado=kMDItemDateAdded")
  d+=("Fecha de Creación=kMDItemContentCreationDate")
  d+=("Fecha de Última Apertura=kMDItemLastUsedDate")
  d+=("Fecha de Modificación=kMDItemContentModificationDate")
  for n; do
    if [[ -e "$n" ]]; then
      printf "Nombre: %s\n" "$n"
      for i in "${d[@]}"; do
        x="$(mdls -name "${i#*=}" "$n")"
        if [[ $x == *\(null\) ]]; then
          x="--"
        else
          x="$(date -jf "%Y-%m-%d %H:%M:%S %z" "${x#* = }" +"$f")"
        fi
        printf "%-16s = %s\n" "${i%=*}" "$x"
      done
    else
      printf "dates: %s: No existe el archivo o directorio\n" "$n" >&2
      e=1
    fi
  done
  return $e
}

A continuación se muestra un ejemplo de uso.

dates x.jpg bad.name mbr.bin

A continuación se muestra un ejemplo de salida. Tenga en cuenta que el archivo bad.name no existe.

Nombre: x.jpg
Fecha de Agregado       = lun 11 dic 11:16:37 CST 2023
Fecha de Creación    = lun 2 oct 08:48:39 CDT 2023
Fecha de Última Apertura = lun 11 dic 04:10:54 CST 2023
Fecha de Modificación    = lun 11 dic 04:21:26 CST 2023
dates: bad.name: No existe el archivo o directorio
Nombre: mbr.bin
Fecha de Agregado       = vie 2 abr 13:16:56 CDT 2021
Fecha de Creación    = vie 2 abr 13:16:56 CDT 2021
Fecha de Última Apertura = --
Fecha de Modificación    = vie 2 abr 13:16:56 CDT 2021

Para obtener el formato de las fechas exactamente como se muestra en el Finder en mi Mac, necesité modificar el formato de salida. En otras palabras, necesité reemplazar f="%+" en la función dates con lo siguiente.

f="%b %-e, %Y at %-l:%M %p"

El cambio en la salida se muestra a continuación.

Nombre: x.jpg
Fecha de Agregado       = 11 dic, 2023 at 11:16 AM
Fecha de Creación    = 2 oct, 2023 at 8:48 AM
Fecha de Última Apertura = 11 dic, 2023 at 4:10 AM
Fecha de Modificación    = 11 dic, 2023 at 4:21 AM
dates: bad.name: No existe el archivo o directorio
Nombre: mbr.bin
Fecha de Agregado       = 2 abr, 2021 at 1:16 PM
Fecha de Creación    = 2 abr, 2021 at 1:16 PM
Fecha de Última Apertura = --
Fecha de Modificación    = 2 abr, 2021 at 1:16 PM

Nota: Mientras usaba Catalina 10.15.7 para hacer pruebas en volúmenes APFS, encontré que el comando mdls puede devolver incorrectamente la "Fecha de Agregado" para archivos que tienen más de un enlace duro. En otras palabras, el comando puede devolver la "Fecha de Agregado" para un archivo diferente con un enlace duro al mismo inode. Esto puede suceder incluso cuando la aplicación Finder muestra correctamente la "Fecha de Agregado".


Referencias

0voto

Sreejesh Kumar Puntos 728

Al menos puedes usar POSIX -c o -u:

-c Utilizar la hora en que el estado del archivo fue cambiado por última vez para ordenar o imprimir.
-u Utilizar la hora de último acceso, en lugar de la hora de última modificación del archivo para ordenar (-t) o imprimir detalladamente (-l).

Por ejemplo:

 ls -lc ArchivoEjemplo.txt
 ls -lu ArchivoEjemplo.txt

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X