[Shell UNIX] Date de modif d'un fichier
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
-
4 août 2005 à 17:54
PJM -
PJM -
Bonjour,
Y a-t-il une commande (ksh) qui permette de récupérer la date de dernière modification d'un fichier (à part ls -lrt) ?
Merci
Y a-t-il une commande (ksh) qui permette de récupérer la date de dernière modification d'un fichier (à part ls -lrt) ?
Merci
A voir également:
- Ls date de modification
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Airpods 3 date de sortie - Guide
- Office 2024 date de sortie - Accueil - Bureautique
- Samsung a33 date de sortie - Guide
10 réponses
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
5 août 2005 à 06:14
5 août 2005 à 06:14
Il existe des outils relatifs aux propriétés des fichiers bien plus intéressants que ls.
Le fait que l'on utilise ksh n'a d'ailleurs rien avoir avec la choucroute, ls est en général une commande externe.
C'est plutot la qualité de la distribution qui est en jeu ici.
Par exemple stat
(sous Debian
johand@horus:~$ dpkg -S $(which stat)
coreutils: /usr/bin/stat)
johand@horus:~$ stat -c "last access: %x last modification:%y" mbox
last access: 2005-08-04 09:18:25.000000000 +0200 last modification:2005-06-23 10:23:42.000000000 +0200
Lire man stat évidemment.
Johan
Le fait que l'on utilise ksh n'a d'ailleurs rien avoir avec la choucroute, ls est en général une commande externe.
C'est plutot la qualité de la distribution qui est en jeu ici.
Par exemple stat
(sous Debian
johand@horus:~$ dpkg -S $(which stat)
coreutils: /usr/bin/stat)
johand@horus:~$ stat -c "last access: %x last modification:%y" mbox
last access: 2005-08-04 09:18:25.000000000 +0200 last modification:2005-06-23 10:23:42.000000000 +0200
Lire man stat évidemment.
Johan
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
5 août 2005 à 09:26
5 août 2005 à 09:26
salut et merci pour ta reponse.
Cependant, stat n'est pas une commande valide sur mon poste (AIX)...
Cependant, stat n'est pas une commande valide sur mon poste (AIX)...
cepourca
>
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
5 août 2005 à 10:11
5 août 2005 à 10:11
c'est pour ca que quand on pose une question il y a une cas à remplire
VOTRE CONFIGURATION
VOTRE CONFIGURATION
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
>
cepourca
5 août 2005 à 10:15
5 août 2005 à 10:15
Ah bon, c'est pour ça alors...
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
>
cepourca
5 août 2005 à 10:39
5 août 2005 à 10:39
Il ne faut pas jeter la pierre à 'jebok' su fait qu'il n'ait pas fourni la dernière révision et le patch ultime de son OS
Le fait qu'il utilise AIX n'est pas un problème.
La question reste ouverte.
Ici on est dans le sub forum Unix , non ?
Johan
Le fait qu'il utilise AIX n'est pas un problème.
La question reste ouverte.
Ici on est dans le sub forum Unix , non ?
Johan
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
>
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
5 août 2005 à 10:41
5 août 2005 à 10:41
Ben , essaye de voir s'il existe un code source portable/POSIX ...
pour stat
Google et SourceForge sont tes amis...
Johan
pour stat
Google et SourceForge sont tes amis...
Johan
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
30 mars 2007 à 12:04
30 mars 2007 à 12:04
man stat alors ;-))
%X Time of last access as seconds since Epoch %x Time of last access %Y Time of last modification as seconds since Epoch %y Time of last modification %Z Time of last change as seconds since Epoch %z Time of last changeEn gros :
stat -c '%X' fichier;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sous AIX, la seule astuce que l'on m'a donnée c'est de passer par la commande "tar". Je l'ai complétée en utilisant la commande "time".
Ci joint une fonction t'affichant l'horodatage complet d'un fichier :
function timestamp
{
#DGX&GRE-20050823
#set -x # Pour passer en mode trace
File=$1
if [ ! -f "${File}" -a ! -d "${File}" ]
then
echo "usage : ${0} filename" >&2
return 1
else
touch -r "${File}" /tmp/T.timestamp.$$
LANG=fr_FR # Pour passer en format francais
# LANG=en_EN # Pour passer en format anglais
tar -cf - /tmp/T.timestamp.$$ | tar -tvf - | awk '{print $5" "$6" "$8" "$7}'
rm -f /tmp/T.timestamp.$$
fi
unset File
return 0
}
Ci joint une fonction t'affichant l'horodatage complet d'un fichier :
function timestamp
{
#DGX&GRE-20050823
#set -x # Pour passer en mode trace
File=$1
if [ ! -f "${File}" -a ! -d "${File}" ]
then
echo "usage : ${0} filename" >&2
return 1
else
touch -r "${File}" /tmp/T.timestamp.$$
LANG=fr_FR # Pour passer en format francais
# LANG=en_EN # Pour passer en format anglais
tar -cf - /tmp/T.timestamp.$$ | tar -tvf - | awk '{print $5" "$6" "$8" "$7}'
rm -f /tmp/T.timestamp.$$
fi
unset File
return 0
}
zzub
Messages postés
5
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
3 avril 2007
1
30 mars 2007 à 11:52
30 mars 2007 à 11:52
merci jipicy, mais en fait, le man date de Sun 5.8 est vraiment pas complet... (j'ai une page avec rien de bien utile, je cherche mal??)
en fait ce que je voulais, c'était récupérer la date de dernière modification d'un fichier sous format secondes depuis 1970, pour pouvoir l'utiliser avec Java et le format long...
merci encore pour ton (votre) aide!
en fait ce que je voulais, c'était récupérer la date de dernière modification d'un fichier sous format secondes depuis 1970, pour pouvoir l'utiliser avec Java et le format long...
merci encore pour ton (votre) aide!
mamiemando
Messages postés
33766
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 août 2025
7 878
4 août 2005 à 18:20
4 août 2005 à 18:20
Ben c'est bien ls -l qu'est ce qu'il te faut de plus ? En fait c'est pour faire quoi ?
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
5 août 2005 à 09:28
5 août 2005 à 09:28
Oui, ls c'est très bien, mais le problème, c'est que je souhaite connaître la date de modif de plusieurs fichiers situés sur plusieurs machines.
Et c'est là que ca se gâte car en fonction de la machine, la date est en anglais ou en francais donc il m'est impossible de faire un traitement automatique de la date...
C'est pourquoi je recherche une commande "universelle" qui donne un résultat formaté que je pourrais ensuite retraité automatiquement (par un script).
Et c'est là que ca se gâte car en fonction de la machine, la date est en anglais ou en francais donc il m'est impossible de faire un traitement automatique de la date...
C'est pourquoi je recherche une commande "universelle" qui donne un résultat formaté que je pourrais ensuite retraité automatiquement (par un script).
zzub
Messages postés
5
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
3 avril 2007
1
30 mars 2007 à 13:45
30 mars 2007 à 13:45
j'avais déjà essayé stat..
mais :
ksh: stat: not found
j'ai l'impression d'avoir que la base de la base des commandes...
mais :
ksh: stat: not found
j'ai l'impression d'avoir que la base de la base des commandes...
dubcek
Messages postés
18789
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 août 2025
5 636
25 mai 2007 à 14:58
25 mai 2007 à 14:58
Est ce que tu as perl installé ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
25 mai 2007 à 15:35
25 mai 2007 à 15:35
Salut,
Perl est native sur les système type UNIX
Perl est native sur les système type UNIX
dubcek
Messages postés
18789
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 août 2025
5 636
25 mai 2007 à 15:41
25 mai 2007 à 15:41
Sur Solaris, pas avant 2.6 ... quant à AIX ...
le script suivant permet de récupérer les dates en secondes:
perl -e '($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($ARGV[0]); printf "atime=%ld, mtime=%ld, ctime=%ld\n", $atime, $mtime, $ctime' file_name
le même simplifié
perl -e '(@i) = stat($ARGV[0]); printf "atime=%ld, mtime=%ld, ctime=%ld\n", $i[8], $i[9], $i[10]' file_name
le script suivant permet de récupérer les dates en secondes:
perl -e '($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($ARGV[0]); printf "atime=%ld, mtime=%ld, ctime=%ld\n", $atime, $mtime, $ctime' file_name
le même simplifié
perl -e '(@i) = stat($ARGV[0]); printf "atime=%ld, mtime=%ld, ctime=%ld\n", $i[8], $i[9], $i[10]' file_name
Mister_Toofer
>
dubcek
Messages postés
18789
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 août 2025
14 oct. 2008 à 14:02
14 oct. 2008 à 14:02
Merci, c'est exactement ce que je cherchais !
Il faudrait que j'apprenne le perl, ça a l'air vachement puissant !
Il faudrait que j'apprenne le perl, ça a l'air vachement puissant !
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
25 mai 2007 à 16:25
25 mai 2007 à 16:25
encore simplifié
lami20j
perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];print "$atime, $mtime, $ctime\n";' file_name--
lami20j