Le 26 mars 08 à 15:29, Patrick Proniewski a écrit :
> On 26 mars 08, at 15:08, jlouisleg wrote:
>
>> Le 26 mars 08 à 14:49, Patrick Proniewski a écrit :
>>
>>> Jean Louis nous dis que cela marche quand même, je pense qu'Apple a
>>> pu
>>> changer le fonctionnement pour que touch mette aussi à jour les
>>> métadonnées purement HFS.
>>
>> Patrick tu me fout des doutes,
>
> Faut pas, tu as sûrement raison ! Je me base sur mon expérience d'Unix
> (BSD), mais je n'ai pas revérifié depuis longtemps.
> En farfouillant de man en man (utimes, puis utime, puis stat), j'ai
> fini par trouver une référence à la date de naissance de l'inode
> (birth time of the inode).
>
> On y accède en lecture par la commande stat (et probablement
> d'autres) :
>
> $ touch /tmp/toto
> $ stat -f %SB /tmp/toto
> Mar 26 15:24:15 2008
>
> dans le -f %SB, on met "B" pour Birth ou "m" pour modification, ou "a"
> pour access.
>
Chez moi,
le st_birthtime ne marchait pas sous Tiger...
Mais marche sous Leopard. Précision (même si ça paraît évident):
correspond à la date de création de fichier Apple.
Pour info il existe encore une autre date de fichier... Ce qui fait 5
maintenant à ma connaissance...
Date de dernière ouverture avec LaunchServices.
Utilisée entre autre pour trier les fichiers (par défaut) dans un
résultat Spotlight (Léopard).
(* v1.0.0b2 *)
on lastUsedDate(f)
(*
Date and time that the file was last used.
This value is updated automatically by LaunchServices everytime a
file is
opened by double clicking, or by asking LaunchServices to open a file.
'kMDItemLastUsedDate' 'Last opened' 'Date when this item was last
used' 'lastused, date'
*)
--try
set fx to quoted form of (get POSIX path of f)
set cmd to "mdls -name kMDItemLastUsedDate -raw -nullMarker
\"missing value\" " & fx
-- setShellCommand(cmd)
set r to do shell script cmd
if r = "missing value" then error "Can't get last used date." number
9002
return r -- ISOdateToDate(r)
--on error ert number ern from obj
-- stampError(ert, ern, obj, "lastUsedDate()")
--end try
end lastUsedDate
------ Touch
Merci à zacromatafalgar et à Jean-Louis pour les subitilités avec touch.
En effet je me demandais pourquoi des sites dit "sérieux" s'entêtaient
avec une commande qui ne modifie - apparemment - que la date d'accès
ou de modification. De (trop) rapides tests me faisaient penser qu'ils
se plantaient allègrement.
En fait ils se plantent à moitié...
Si j'ai compris quelque chose, la date employée dans touch doit-être
inférieure à la date de création.
On ne peut donc pas modifier une date de création dans le futur par
touch.
C'est une limitation importante qu'il faut souligner.
Petite session Terminal pour confirmer:
# création du fichier
%% cd ~/Desktop
%% touch toto
%% statxx toto # fonction perso utilisant stat(1)
File: "toto"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: ( 501/ dan) Gid:
( 20/ staff)
Device: 14,2 Inode: 8497352 Links: 1
Access: 2008-03-26 22:19:32 +0100
Modify: 2008-03-26 22:19:32 +0100
Change: 2008-03-26 22:19:32 +0100
Birth: 2008-03-26 22:19:32 +0100
# modification dans le futur: NON
%% touch -t "200901010000" toto
%% statxx toto
File: "toto"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: ( 501/ dan) Gid:
( 20/ staff)
Device: 14,2 Inode: 8497352 Links: 1
Access: 2009-01-01 00:00:00 +0100
Modify: 2009-01-01 00:00:00 +0100
Change: 2008-03-26 22:19:57 +0100
Birth: 2008-03-26 22:19:32 +0100
# modification dans le passé: OUI
%% touch -t "200601010000" toto
%% statxx toto
File: "toto"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: ( 501/ dan) Gid:
( 20/ staff)
Device: 14,2 Inode: 8497352 Links: 1
Access: 2006-01-01 00:00:00 +0100
Modify: 2006-01-01 00:00:00 +0100
Change: 2008-03-26 22:20:15 +0100
Birth: 2006-01-01 00:00:00 +0100
--
Daniel
_______________________________________________
Applescript_fr mailing list
Applescript_fr@???
http://listes.patpro.net/mailman/listinfo/applescript_fr