Possibilité du shell??

Fermé
brasco - Modifié par mamiemando le 6/06/2012 à 10:13
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 6 juin 2012 à 05:14
Bonjour,
Tout le monde, je suis actuellement entrain de tester plusieurs combinaison pour arriver à mes fins. Ma question est la suivante est-il possible de savoir si un fichier a été rajouté dans un répertoire et si oui lequel ?

Piste explorée :
j'essaye de regarder la dernière modification de ce "Répertoire"
premier problème c'est la comparaison du résultat (avant / maintenant )..

Merci d'avance pour vos conseils et votre temps


A voir également:

3 réponses

Utilisateur anonyme
4 juin 2012 à 17:49
salut,

mkdir mon_repertoire
lastModif=$(stat -c%y mon_repertoire)
##plus tard
currentStat=$(stat -c%y monRep)
if test $lastModif -eq $currentStat #je ne mets pas de guillemets car c'est des nombres entiers
then
   echo "pas de modification de mon_repertoire"
else
   echo "il y a du nouveau dans mon_repertoire"
   lastModif=$currentStat
fi

ne tente pas d'utiliser 'ls', le format d'affichage n'est pas stable
alors que celui de 'stat', c'est toi qui le choisit!
0
Utilisateur anonyme
5 juin 2012 à 01:04
currentStat=$(stat -c%y mon_repertoire)
bien sûr!

pourquoi ne pas introduire une petite fonction pour éviter les coquilles :) , puisque le même code est écrit plusieurs fois
monStat() { stat -c%y mon_repertoire;}
lastModif=$(monStat)
##plus tard
currentStat=$(monStat)

et la suite.
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
5 juin 2012 à 10:15
hello
trouver tous les fichiers modifiés depuis 2h :
$ touch -d "2 hours ago" /tmp/x
$ find ~ -newer /tmp/x
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
6 juin 2012 à 05:14
Si tu tolères l'utilisation d'une fonction blocante, utilise l'appel système inotify
Voir Inotify Example
Après quelques modifications des includes de l'exemple fourni dans le lien:

johand@osiris: ~/src/C/inotify $ grep inotify_add  inotify_example.c
  wd = inotify_add_watch( fd, "/tmp", IN_CREATE | IN_DELETE );
johand@osiris: ~/src/C/inotify $ gcc -Wall -o inotify_example inotify_example.c
inotify_example.c: In function `main':
inotify_example.c:69:1: warning: control reaches end of non-void function [-Wreturn-type]
johand@osiris: ~/src/C/inotify $ ./inotify_example  &
[1] 7914
johand@osiris: ~/src/C/inotify $ touch /tmp/truc
New file truc created.


Regarder:
inotify_add_watch (2) - add a watch to an initialized inotify instance
inotify_init (2) - initialize an inotify instance
inotify_init1 (2) - initialize an inotify instance
inotify_rm_watch (2) - remove an existing watch from an inotify instance
0