[ SunOS ] Recuperer temps epoch et epoch fichier

laliemendez Messages postés 5 Statut Membre -  
laliemendez Messages postés 5 Statut Membre -
Bonjour à tous,

Sous SunOS, je chercher à obtenir le temps epoch (en secondes donc) et le temps epoch d'un fichier.
Avec une simple soustraction, je pourrais voir depuis combien de seconde le fichier est présent dans le répertoire.

Seulement la commande date +%S ne marche pas sous SunOS ! Et pas moyen de trouver comment récupérer le temps epoch.

Avez-vous une solution ?
Merci d'avance ;)

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    utiliser perl
    date en secondes
    perl -e 'printf "%d\n", time()'
    date du fichier en secondes
    perl -e 'printf "%d\n" ,(stat($ARGV[0]))[9]' fichier 
    1
    1. laliemendez Messages postés 5 Statut Membre
       
      J'ai déjà vu cette solution et je t'en remercie :)
      Mais comme cela doit s'intégrer dans un gros script en shell et qu'il est difficile de récupérer du perl dans du Shell, je voulais savoir si je pouvais faire un script en full shell ...
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      ces lignes perl ne posent pas de problème dans un script, comme n'importe quelle commande.
      faire cela en shell serait bien compliqué
      0
    3. laliemendez Messages postés 5 Statut Membre
       
      Je veux dire pour récupérer le résultat d'une commande Perl dans une variable shell :)
      Car je veux farie un truc du style Temps_passe=$Maintenant - $DateFichier
      Mais en shell, les 2 lignes ci-dessous ne fonctionnent pas :(
      Maintenant=$(perl -e 'printf "%d\n", time()')
      DateFichier=$(perl -e 'printf "%d\n" ,(stat($ARGV[0]))[9]' fichier)
      0
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      elles doivent fonctionner. Quel shell?
      $ Maintenant=$(perl -e 'printf "%d\n", time()') 
      $ echo $Maintenant
      1356686847
      $ 
      
      0
    5. laliemendez Messages postés 5 Statut Membre
       
      Ah, j'ai compris pourquoi. C'est le passage de la variable $i (qui contient tous les fichiers du répertoire courant) au Perl qui bugge :(
      for i in $(ls .)
      do
      date_fichier=$(perl -e 'printf "%d\n" ,(stat($ARGV[0]))[9]' $i)
      echo "Fichier $i en temps epoch : $(date_fichier)"
      done
      0