Come cambiare la cartella TimeStamp in modo ricorsivo in Windows / Mac / Linux / Unix


0

PER WINDOWS:

Devo modificare il timestamp TOP FOLDER per riflettere il file più recente o l'ultima sottocartella aggiunta. Nota, non voglio modificare le proprietà di data / ora della sottocartella in cui non sono stati aggiunti nuovi file. Pertanto, solo la sottocartella e la cartella TOP devono avere gli attributi di data / ora che hanno modificato la corrispondenza con il file più recente (o sottocartella) che consente la cartella vuota e il file a byte zero (ad esempio ".").

Se questo può essere programmato PREFERENZIALMENTE in file batch WSH, VB, Powershell o Ms-DOS (python, PERL, ecc.) In modo che possa essere eseguito in un Utilità di pianificazione per automatizzare il processo (alla fine della giornata, ad esempio 8:00).

Ho visto domande simili per * NUX ma nessuna risposta definitiva per * NUX o Windows (e Mac). Questa deve essere una vera sfida. Dal momento che ho un pochino di conoscenze nelle API di Widows (o, in ogni caso, nella programmazione di qualsiasi tipo), ho bisogno dell'aiuto del crowd di SuperUser. Grazie grazie...

Suggerimento: usare gli hash MD5 per confrontare timbro filetime (ha senso?)

per esempio vedi: http://msdn.microsoft.com/en-us/library/ms724205%28v=vs.85%29 http://msdn.microsoft.com/en-us/library/ms724284%28VS.85%29.aspx


1
Per TOP FOLDER intendi la directory root del filesystem? Se è così allora mi sembra che il timestamp della root directory sarà aggiornato costantemente e il suo valore non ti dirà molto ...
Celada

Penso che intenda ogni directory madre di un file che è stato modificato. Perché lo vuoi?
wullxz

Hai indicato nei tag e nel titolo che desideri una soluzione per unix, ma la tua domanda implica che vuoi solo una soluzione per Windows. Puoi chiarire per favore? Inoltre, se ho capito bene, qualsiasi soluzione possibile sarà molto lenta in quanto dovrà percorrere l'intera struttura della directory per vedere se qualche file all'interno è stato modificato. In Linux potrebbe essere possibile fare qualcosa con inotify.
grifferz

grifferz, preferisco lo script di soluzione per Windows XP / V / 7 perché ho bisogno della soluzione per il mio PC WindowsXP. È piuttosto sinonimo di torutur di CUT | COPY / PASTE poiché è necessario trasferire così tanti dati. Poiché si tratta di una situazione dinamica in cui il flusso di dati entra continuamente (ad esempio, si sta effettuando un'istantanea ogni 30 secondi in webcam guardando Street. Ogni volta che si acquisisce un'istantanea, viene immessa nella directory -ultima immagine con il nome del file, incluso timestamp.) Alla fine della settimana tutti i dati vengono spostati in un'altra directory in modo da mantenere la directory-ultima meno di 256 file)
C2940680

(continua ...) Se posso avere VBS, sarebbe l'ideale. Meccanismi alternativi di script sono meno desiderabili, non indesiderati). Metto Linux / Unix solo così che anche altre persone in quel mondo possano trarne beneficio. Grazie per i tuoi commenti
C2940680

Risposte:


0

È scritto in bash / cygwin e funziona per quello di cui avevo bisogno - che sembra simile ai tuoi bisogni ... Non è efficiente in alcun modo, ma è efficace.

=================

find -maxdepth 1 -type d | grep -v "^\.$" | while read D ; do
 cd "$D"
 F=`ls -1tr | tail -1`
 cd ..
 touch -r "$D/$F" "$D"
done

=================

Brian

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.