GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:uso de buscar para localizar archivos anteriores a <fecha>

Solución 1:

No, puede usar una cadena de fecha/hora.

Desde man find :

-nueva referencia XY
Compara la marca de tiempo del archivo actual con la referencia. El argumento de referencia es normalmente el nombre de un archivo (y una de sus marcas de tiempo se usa para la comparación), pero también puede ser una cadena que describa un tiempo absoluto. X e Y son marcadores de posición para otras letras, y estas letras seleccionan qué tiempo pertenece a cómo se usa la referencia para la comparación.

          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

Ejemplo:

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

Solución 2:

No está directamente relacionado con la pregunta, pero podría ser interesante para algunos que tropiezan aquí.

buscar El comando no es compatible directamente con el parámetro -older para encontrar archivos anteriores a una fecha requerida, pero puede usar la declaración de negación (usando el ejemplo de respuesta aceptada):

touch -t 201003160120 some_file
find . ! -newer some_file

devolverá archivos antiguos que la fecha proporcionada.

Solución 3:

Si solo tiene '-archivo más nuevo', puede usar esta solución 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

toque de hombre:

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

Suponiendo que tu touch tenga esta opción (el mío es touch 5.97).

Solución 4:

find <dir> -mtime -20

este comando de búsqueda encontrará archivos modificados en los últimos 20 días.

  • mtime -> modificado (atime=acceso, ctime=creado)
  • -20 -> menos de 20 días (20 exactamente 20 días, +20 más de 20 días)

Puede agregar limitaciones adicionales como:

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

igual que antes, pero solo encuentra archivos que terminan en '.txt'.

Solución 5:

Solo para agregar, incluso puede usar dos argumentos newermt para buscar en un intervalo de tiempo:

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

para encontrar todos los archivos de marzo de 2007.


Linux
  1. Linux:¿obtener archivos para la fecha actual en Linux?

  2. Cómo eliminar archivos de más de N días usando tmpreaper en Linux

  3. Cómo encontrar y eliminar archivos anteriores a un período de tiempo particular en Linux

  4. Cómo crear archivos tar para archivos de más de 7 días usando secuencias de comandos de shell de Linux

  5. ¿Cómo se eliminan archivos anteriores a la fecha específica en Linux?

Cómo encontrar archivos en Linux

Encuentra archivos grandes en Linux

Cómo encontrar archivos usando la línea de comandos en la terminal de Linux

Cómo encontrar recursivamente y enumerar los archivos por fecha en Linux

Cómo eliminar archivos anteriores a los días especificados en Linux

Encuentra texto en archivos en Linux usando grep