Trova un file che ha 30 minuti


12

Come posso trovare il file che ha 30 minuti /bin/ksh?


4
Vuoi dire "i suoi contenuti sono stati modificati 30 minuti fa" o "non esistevano fino a quando non è stato creato 30 minuti fa"? Inoltre, quale sistema operativo stai usando? Diversi sistemi operativi sono disponibili con diverse versioni di find.
Mark Plotnick,

@ Mark Plotnick voglio trovare il file che
risaliva a

Penso che lui / lei significhi che è stato creato 30 minuti fa . Come se per esempio qualcuno fosse X vecchio, è nato X tempo fa.
erik,

Risposte:


15

Su Linux, non c'è traccia del tempo di creazione di un file. Puoi accedere solo a:

  • l'ora dell'ultima modifica del contenuto (una creazione vale come una modifica ovviamente) mtime,
  • l'ora dell'ultimo accesso, atime,
  • l'ultima volta che la modifica dei meta-dati, ctime.

Se vuoi cercare file con un test basato su questi tempi, find( man find) può aiutarti.

Lo useresti in questo modo per trovare un file a cui hai avuto accesso esattamente 30 minuti fa nella tua directory corrente e nelle sue sottodirectory:

find -amin 30

Di solito, ti consigliamo di utilizzare un intervallo in quanto può essere difficile fornire un numero esatto di minuti:

find -amin +25 -amin -35

Questo troverà i file accessibili più di 25 ma meno di 35 minuti fa.

E se sei interessato solo al tempo di modifica e non al tempo di accesso (ad esempio lettura), sostituiscilo -amincon -mmin.


non vuoi il tempo. atime è il tempo di accesso.
ctrl-alt-delor,

@richard L'OP non ha specificato cosa intendesse così ... Comunque ho inserito mtimeanche la risposta
lgeorget

1
@ lgeorget quando lo uso -mtime 30mostrava i file vecchi di 30 giorni.
Aravind,

@ user2910201 Ups stupid me. Xtimele opzioni sono per giorni e Xminopzioni per minuti. Mio male, modifico la risposta
lgeorget

2
@ user2910201 ma nota che puoi usare Xtimecon qualsiasi unità di tempo ragionevole come 30mper trenta minuti o 5dper cinque giorni
lgeorget

3

Puoi usare mtimeper farlo:

find . -mmin 30    #exactly 30 minutes old

questo ti dirà i file che erano createdo modified30 minuti indietro
g4ur4v

@ g4ur4v quando lo uso -mminsta mostrando -mminnon è un'opzione valida
Aravind

Prova questo:find /path -mtime +30m
ryekayo,

Non sono sicuro del perché non -mminstia riconoscendo , ho cercato molti esempi usando quel comando ..
ryekayo,

3

Senza GNU/BSD find

TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /reference/file

e poi find . -newer /reference/file

soluzione data da Stéphane Chazelas

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.