2012-01-24 6 views
28

vedere sto lavorando in un codice sorgente di un progetto BIG Ora voglio sapere quali file vengono modificati dopo una certa data.C'è un modo per scoprire il file modificato dopo una certa data in tutto il codice del progetto?

C'è un comando o un modo per ottenere quello ..

ho provato

# ls -R -l 

ma qui si vede tutti i file con i dati modificati ultimi ma voglio filtrare questa uscita da alcuni dati ...

quindi c'è un modo per farlo in linux? c'è qualche strumento disponibile per questo?

+1

Che cos'è lo strumento scm? Quasi tutti gli strumenti di controllo della versione sono dotati di buoni meccanismi di query – Jayan

+0

find ha diverse opzioni per fornire un elenco in base alle date di accesso – Jayan

risposta

59
#set timestamp for file  
touch --date "2011-12-31" /tmp/foo 
# Find files newer than 2011/Dec/31, in /some/files 
find /some/files -newer /tmp/foo 
+7

Dopo un tempo specifico: touch -d '2011-12-31 10:22'/tmp/foo –

22

Usa trovare comando con mtime argomenti: Some examples are here o here

Per esempio, file di elenco cambiati negli ultimi 7 giorni ...

find/-type f -mtime -7 

Per bene grana cerca puoi provare -mmin argomento. Vedere un esempio discusso in un altro sito SE: Find All files older than x minutes

+1

Il problema con mtime è troppo grossolano. Se hai file modificati 6 ore fa e 8 ore fa, non puoi distinguerli con find. Avrai bisogno di usare [peko's workaround] (http://stackoverflow.com/a/8986162/111424). –

+0

Questo comando fornisce i file modificati 7 * 24 ore fa, non quelli modificati negli ultimi 7 giorni. –

+0

C'è qualche via per saltare certe sottocartelle con una parola chiave specifica che rimane "cache" e "log"? per esempio. '' 'trova/-type f -mtime -7 -skip" cache, registra "?" '' grazie. – Ahdee