Le tableau ci-dessous montre l'attribut de métadonnées qui correspond à la colonne de la vue de liste de l'application Finder. L'attribut de métadonnées peut être passé à la commande mdls
pour obtenir la date appropriée. Cependant, la date n'est pas par rapport à l'emplacement actuel.
Colonne de la vue de liste de Finder
Attribut de métadonnées
Date d'ajout
kMDItemDateAdded
Date de création
kMDItemContentCreationDate
Date de dernière ouverture
kMDItemLastUsedDate
Date de modification
kMDItemContentModificationDate
La fonction ci-dessous affiche les dates des applications Finder pour les noms de fichiers donnés en entrée. Les dates sont converties à l'emplacement par défaut de l'ordinateur. Cette fonction a été testée à la fois dans bash
et zsh
.
dates () {
local d=() e=0 f="%+" i n x
d+=("Date Added=kMDItemDateAdded")
d+=("Date Creation=kMDItemContentCreationDate")
d+=("Date Last Opened=kMDItemLastUsedDate")
d+=("Date Modified=kMDItemContentModificationDate")
for n; do
if [[ -e "$n" ]]; then
printf "Nom: %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: Aucun fichier ou dossier de ce type\n" "$n" >&2
e=1
fi
done
return $e
}
Voici un exemple d'utilisation.
dates x.jpg bad.name mbr.bin
L'exemple de sortie est donné ci-dessous. Notez que le fichier bad.name
n'existe pas.
Nom: x.jpg
Date d'ajout = lun. 11 décembre 11:16:37 CST 2023
Date de création = lun. 2 octobre 08:48:39 CDT 2023
Date de dernière ouverture = lun. 11 décembre 04:10:54 CST 2023
Date de modification = lun. 11 décembre 04:21:26 CST 2023
dates: bad.name: Aucun fichier ou dossier de ce type
Nom: mbr.bin
Date d'ajout = ven. 2 avril 13:16:56 CDT 2021
Date de création = ven. 2 avril 13:16:56 CDT 2021
Date de dernière ouverture = --
Date de modification = ven. 2 avril 13:16:56 CDT 2021
Pour obtenir le format des dates exactement comme indiqué dans le Finder sur mon Mac, j'ai dû modifier le format de sortie. En d'autres termes, j'ai dû remplacer f="%+"
dans la fonction dates
par ce qui suit.
f="%b %-e, %Y à %-l:%M %p"
Le changement de la sortie est montré ci-dessous.
Nom: x.jpg
Date d'ajout = 11 décembre 2023 à 11:16 AM
Date de création = 2 octobre 2023 à 8:48 AM
Date de dernière ouverture = 11 décembre 2023 à 4:10 AM
Date de modification = 11 décembre 2023 à 4:21 AM
dates: bad.name: Aucun fichier ou dossier de ce type
Nom: mbr.bin
Date d'ajout = 2 avril 2021 à 1:16 PM
Date de création = 2 avril 2021 à 1:16 PM
Date de dernière ouverture = --
Date de modification = 2 avril 2021 à 1:16 PM
Remarque : En utilisant Catalina 10.15.7 pour tester sur des volumes APFS, j'ai constaté que la commande mdls
peut renvoyer la mauvaise "Date d'ajout" pour les fichiers ayant plus d'un lien physique. En d'autres termes, la commande peut renvoyer la "Date d'ajout" pour un fichier différent lié dur lié au même inode. Cela peut arriver même lorsque l'application Finder affiche la "Date d'ajout" correcte.
Références