Rechercher : dans
Par :

[Shell UNIX] Date de modif d'un fichier

Dernière réponse le 14 oct 2008 à 14:02:27 jebok, le 4 aoû 2005 à 17:54:51 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [Shell UNIX] Date de modif d'un fichier » dans :
[Shell] Transferer des fichiers via ssh VoirSSH - Secure SHell Utilisation Informations complémentaires LOGICIELS Sous Linux/Unix Sous Windows Avertissement Utilisation SSH permet d'utiliser des pipelines de commandes, et d'utiliser des tubes d'entrées/sorties comme toute...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Fichier DAT VoirFormat DAT Un fichier DAT Un fichier .dat est un fichier de données (.DAT signifie data). En général, il s'agit d'un fichier binaire, créé par un programme et utilisable uniquement par ce programme, ce qui signifie qu'il n'est pas censé être ouvert...
UNIX - Les fichiers VoirIntroduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de...
Introduction aux systèmes UNIX VoirLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs...

1

mamiemando, le 4 aoû 2005 à 18:20:56

Ben c'est bien ls -l qu'est ce qu'il te faut de plus ? En fait c'est pour faire quoi ?

Répondre à mamiemando

4

jebok, le 5 aoû 2005 à 09:28:31

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).
Merci de votre aide

Répondre à jebok

2

jisisv, le 5 aoû 2005 à 06:14:34
  • +1

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 Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Répondre à jisisv

3

jebok, le 5 aoû 2005 à 09:26:23

Salut et merci pour ta reponse.
Cependant, stat n'est pas une commande valide sur mon poste (AIX)...
Merci de votre aide

Répondre à jebok

5

cepourca, le 5 aoû 2005 à 10:11:34

C'est pour ca que quand on pose une question il y a une cas à remplire

VOTRE CONFIGURATION

Répondre à cepourca

6

jebok, le 5 aoû 2005 à 10:15:27

Ah bon, c'est pour ça alors...

Répondre à jebok

7

jisisv, le 5 aoû 2005 à 10:39:20

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 Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Répondre à jisisv

8

jisisv, le 5 aoû 2005 à 10:41:48

Ben , essaye de voir s'il existe un code source portable/POSIX ...
pour stat
Google et SourceForge sont tes amis...
Johan Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Répondre à jisisv

9

Régis, le 23 oct 2006 à 13:54:29

Tu peux essayer avec une commande de ce genre. C'est ce que je fais depuis un AIX sur 2 linux différents qui me renvoyent des formattages différents de date

ls -al /pse/versions_etats | sed 's/ * / /g' | cut -d ' ' -f 6-8

Répondre à Régis

10

zzub, le 30 mar 2007 à 11:19:29

Salut a tous

j'aimerais savoir s'il est possible de récupérer une date au format "secondes depuis1970", et pas jour mois année

Merci!

Répondre à zzub

11

jipicy, le 30 mar 2007 à 11:33:23

Salut,

man date !

date '+%s'
;-)
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

12

zzub, le 30 mar 2007 à 11:52:01

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!

Répondre à zzub

13

jipicy, le 30 mar 2007 à 12:04:48

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 change
En gros :
stat -c '%X' fichier
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

14

zzub, le 30 mar 2007 à 13:45:48

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...

Répondre à zzub

15

Tim Hooks, le 24 mai 2007 à 17:00:35
  • +1

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
}

Répondre à Tim Hooks

16

dubcek, le 25 mai 2007 à 14:58:42

Est ce que tu as perl installé ?

Répondre à dubcek

17

lami20j, le 25 mai 2007 à 15:35:08
  • +2

Salut,

Perl est native sur les système type UNIX
lami20j

Répondre à lami20j

18

dubcek, le 25 mai 2007 à 15:41:04
  • +1

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

Répondre à dubcek

21

 Mister_Toofer, le 14 oct 2008 à 14:02:27
  • +3

Merci, c'est exactement ce que je cherchais !
Il faudrait que j'apprenne le perl, ça a l'air vachement puissant !

Répondre à Mister_Toofer

19

lami20j, le 25 mai 2007 à 16:25:31

Encore simplifié

perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];print "$atime, $mtime, $ctime\n";' file_name
--
lami20j

Répondre à lami20j

20

simonishe, le 30 déc 2007 à 13:33:24

Avez-vous essayé :

date -r [fichier] '+%s' ?

Répondre à simonishe
Collection CommentÇaMarche.net