GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:utilizzo di find per individuare i file più vecchi di <date>

Soluzione 1:

No, puoi utilizzare una stringa data/ora.

Da man find :

-riferimento XY più recente
Confronta il timestamp del file corrente con il riferimento. L'argomento di riferimento è normalmente il nome di un file (e uno dei suoi timestamp è usato per il confronto) ma può anche essere una stringa che descrive un tempo assoluto. X e Y sono segnaposto per altre lettere e queste lettere selezionano quale tempo appartiene a come il riferimento viene utilizzato per il confronto.

          a   The access time of the file reference
          B   The birth time of the file reference
          c   The inode status change time of reference
          m   The modification time of the file reference
          t   reference is interpreted directly as a time

Esempio:

find -newermt "mar 03, 2010" -ls
find -newermt yesterday -ls
find -newermt "mar 03, 2010 09:00" -not -newermt "mar 11, 2010" -ls

Soluzione 2:

Non direttamente correlato alla domanda, ma potrebbe essere interessante per alcuni che inciampano qui.

trova Il comando non supporta direttamente il parametro -older per trovare file più vecchi di una data richiesta, ma puoi usare l'istruzione negate (usando l'esempio di risposta accettata):

touch -t 201003160120 some_file
find . ! -newer some_file

restituirà i file più vecchi rispetto alla data fornita.

Soluzione 3:

Se hai solo '-newer file' puoi usare questa soluzione alternativa:

# create 'some_file' having a creation date of 16 Mar 2010:
touch -t 201003160120 some_file

# find all files created after this date
find . -newer some_file

tocco dell'uomo:

  -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time

Supponendo che il tuo touch abbia questa opzione (il mio è touch 5.97).

Soluzione 4:

find <dir> -mtime -20

questo comando find troverà i file modificati negli ultimi 20 giorni.

  • mtime -> modificato (atime=accesso, ctime=creato)
  • -20 -> meno di 20 giorni (20 esattamente 20 giorni, +20 più di 20 giorni)

Puoi aggiungere ulteriori limitazioni come:

find <dir> -mtime -20 -name "*.txt"

come prima, ma trova solo i file che terminano con '.txt'.

Soluzione 5:

Giusto per aggiungere altro, puoi anche usare due argomenti newermt per cercare in un intervallo di tempo:

find ! -newermt "apr 01 2007" -newermt "mar 01 2007" -ls

per trovare tutti i file di marzo 2007.


Linux
  1. Utilizzo del comando trova Linux:utilizzo con esempi

  2. Linux:ottenere file per la data corrente in Linux?

  3. Usa Trova e trova per cercare file in Linux

  4. Come rimuovere file più vecchi di N giorni usando tmpreaper in Linux

  5. Come si eliminano i file più vecchi di una data specifica in Linux?

Come trovare file in Linux

Trova file di grandi dimensioni in Linux

Come trovare i file usando la riga di comando nel terminale Linux

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come eliminare file più vecchi di giorni specificati in Linux

Trova testo nei file su Linux usando grep