2010-01-22 13 views
6

J'ai un programme qui nécessite le chemin d'accès à divers fichiers. Les fichiers résident dans des dossiers différents et sont constamment mis à jour, à intervalles irréguliers.Lien symbolique vers le dernier fichier d'un dossier

Lorsque les fichiers sont mis à jour, ils changent de nom, donc, par exemple, dans le dossier dir1 j'ai fv01 et fv02. Plus tard le jour, quelqu'un ajoute fv02_v1; le jour après que quelqu'un ajoute fv03 et ainsi de suite. En d'autres termes, j'ai toujours un fichier mis à jour mais avec un nom différent.

Je veux créer un lien symbolique dans mon dossier "run" vers ces fichiers, de sorte que ce lien pointe toujours vers le dernier fichier créé. Je peux le faire en Python ou Bash, mais je me demandais ce qu'il y a là-bas, car ce n'est pas un problème rare.

Comment vous y prenez-vous?

Merci.

Juan

PS. Mon système d'exploitation est Linux. J'ai actuellement un démon simple (Python) qui regarde de temps en temps (actualise chaque minute) pour le dernier fichier. Ça me semble un peu exagéré.

+1

Je me demande si cela ne devrait pas être plus d'une question de panne de serveur (http://serverfault.com/). – Omnifarious

+0

L'OP ne recherche pas la syntaxe de la commande. L'OP recherche une façon plus simple ou plus élégante de résoudre le problème que d'écrire un script Python ou Bash qui fait automatiquement le 'ln' périodiquement. – Omnifarious

+0

Il veut le faire en bash ou en python. On dirait une question de programmation pour moi. – Duck

Répondre

3

À moins qu'il y ait une raison impérieuse pour laquelle vous n'avez pas déclaré (par exemple, des milliers de fichiers dans le répertoire), procédez comme vous le proposez avec un script triant les fichiers par modification. Il n'y a pas de méthode secrète dont je suis conscient.

Vous pouvez écrire un démon en utilisant inotify pour surveiller vos répertoires et définir immédiatement vos liens, mais cela semble exagéré.

Modifier: Je viens de voir votre modification. Puisque vous avez déjà le démon, inotify n'est peut-être pas une si mauvaise idée. Il serait un peu plus efficace que d'interroger constamment puisque le système d'exploitation vous dira quand quelque chose dans vos répertoires a changé.

Je ne connais pas suffisamment Python pour vous diriger vers quelque chose de spécifique mais il doit exister un wrapper pour inotify.

+0

Merci, canard. J'ai finalement été incapable d'utiliser 'inotify' pour des raisons de version de' libc', mais vous m'avez donné un bon moyen de fournir une solution beaucoup plus générale quand nous avons finalement mis à jour. Juste pour l'enregistrement, il y a un module Python inotify. Merci encore! (+1 et accepté) – Escualo

Questions connexes