Come file di elenco per fascia di data?

Vorrei elencare i file con 3 giorni di età. Ho trovato questo uno a stackoverflow :

find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' ' | grep 2012 

Ma io tipo non capisco cosa significhi tutto il command. Mi chiedo se c'è qualcosa di breve e semplice da capire.

Questo dovrebbe funzionare

 find . -type f -mtime -3 

Spiegazione

 find find files . starting in the current directory (and it's subdirectories) -type f which are plain files (not directories, or devices etc) -mtime -3 modified less than 3 days ago 

Guarda l' man find per man find dettagli


Aggiornare

Per trovare file modificati prima di una data e ora specifici (ad esempio 08:15 il 20 febbraio 2013) puoi fare qualcosa di simile

  touch -t 201302200815 freds_accident find . -type f ! -newer freds_accident rm freds_accident 

Vedere il man touch (o il info touch – ugh!)

Ciò è moderatamente orribile e ci può essere un modo migliore. L'approccio di cui sopra si basa su Unix antico e non GNU, nonché su Linux attuali.

Trova gli intervalli di supporto con argomenti -ctime e -mtime +/-.

per esempio

 $ for y in {07..14};do \ for m in {01..12};do \ for d in {01..30};do \ touch -t 20$y$m${d}0101 $y$m$d.file ;done;done;done $ find . -mtime +0 -mtime -$(( 3 * 365 + 3 )) |sort ./100304.file ./100305.file ./100306.file (...) ./130302.file ./130303.file ./130304.file 

Se volevi i file creati nell'intervallo tra 3 anni e 3 giorni fa fino a una settimana fa si avrebbe usato -mtime +7 -mtime -1098.