2010-01-22 15 views
6

Ho un programma che richiede il percorso di vari file. I file vivono in cartelle diverse e sono costantemente aggiornati, a intervalli irregolari.Collegamento simbolico al file più recente in una cartella

Quando i file vengono aggiornati, cambiano nome, quindi, ad esempio, nella cartella dir1 ho fv01 e fv02. Più tardi il giorno qualcuno aggiunge fv02_v1; il giorno dopo qualcuno aggiunge fv03 e così via. In altre parole, ho sempre un file aggiornato ma con un nome diverso.

Desidero creare un collegamento simbolico nella mia cartella "Esegui" su questi file, in modo tale che il collegamento rimandi sempre all'ultimo file creato.

Posso farlo in Python o Bash, ma mi chiedevo cosa c'è là fuori, poiché questo non è un problema raro.

Come procederesti?

Grazie.

Juan

PS. Il mio sistema operativo è Linux. Al momento ho un semplice demone (Python) che appare ogni tanto (si aggiorna ogni minuto) per il file più recente. Sembra un po 'eccessivo per me.

+1

Mi chiedo se questo non dovrebbe essere più di una domanda di errore del server (http://serverfault.com/). – Omnifarious

+0

L'OP non sta cercando la sintassi del comando. L'OP sta cercando un modo più semplice o più elegante per risolvere il problema rispetto alla scrittura di uno script Python o Bash che esegue periodicamente il comando 'ln'. – Omnifarious

+0

Vuole farlo in bash o in pitone. Sembra una domanda di programmazione per me. – Duck

risposta

3

A meno che non vi siano motivi validi che non vengono specificati (ad esempio migliaia di file nella directory), basta farlo nel modo che si suggerisce con uno script che ordina i file per ora di modifica. Non esiste un metodo segreto di cui io sia a conoscenza.

È possibile scrivere un daemon utilizzando inotify per monitorare le directory e impostare immediatamente i collegamenti, ma sembra eccessivo.

Modifica: Ho appena visto la modifica. Dato che hai già il demone, inotify potrebbe non essere una cattiva idea. Sarebbe un po 'più efficiente di una query costante poiché il sistema operativo ti dirà quando qualcosa nelle tue directory è cambiato.

Non conosco python abbastanza bene da indicarti qualcosa di specifico ma deve esistere un wrapper per inotify.

+0

Grazie, papera. Finalmente non sono stato in grado di usare 'inotify' per i motivi di' libc', ma mi hai messo in grado di fornire una soluzione molto più generale quando finalmente l'aggiornamento. Solo per la cronaca, c'è un modulo inotify Python. Grazie ancora! (+1 e accettato) – Escualo

Problemi correlati