Cómo encontrar archivos modificados recientes o actuales en Linux


En este artículo, explicaremos dos sencillos consejos de línea de comandos que le permitirán enumerar solo todos los archivos de hoy.

Uno de los problemas comunes que encuentran los usuarios de Linux en la línea de comandos es ubicar archivos con un nombre en particular, puede ser mucho más fácil cuando realmente conoce el nombre del archivo.

Sin embargo, suponiendo que haya olvidado el nombre de un archivo que creó (en su carpeta home que contiene cientos de archivos) en un momento anterior durante el día y, sin embargo, necesita usarlo con urgencia.

A continuación, se muestran diferentes formas de enumerar solo todos los archivos que creó o modificó (directa o indirectamente) hoy.

1. Con el comando ls, solo puede enumerar los archivos de hoy en su carpeta de inicio de la siguiente manera, donde:

  1. -a : enumera todos los archivos, incluidos los archivos ocultos
  2. -l : habilita el formato de lista larga
  3. --time-style u003d FORMAT : muestra la hora en el FORMATO especificado
  4. +% D : muestra/usa la fecha en formato% m /% d /% y

# ls  -al --time-style=+%D | grep 'date +%D'

Además, puede ordenar la lista resultante alfabéticamente incluyendo el indicador -X :

# ls -alX --time-style=+%D | grep 'date +%D'

También puede enumerar según el tamaño (primero el más grande) utilizando la marca -S :

# ls -alS --time-style=+%D | grep 'date +%D'

2. Nuevamente, es posible usar el comando find, que es prácticamente más flexible y ofrece muchas opciones que ls, para el mismo propósito que a continuación.

  1. -maxdepth level se utiliza para especificar el nivel (en términos de subdirectorios) debajo del punto de partida (directorio actual en este caso) al que se llevará a cabo la operación de búsqueda.
  2. -newerXY , esto funciona si la marca de tiempo X del archivo en cuestión es más reciente que la marca de tiempo Y de la referencia del archivo. X e Y representan cualquiera de las letras siguientes:
    1. a - hora de acceso a la referencia del archivo
    2. B: hora de nacimiento de la referencia del archivo
    3. c - tiempo de referencia de cambio de estado del inodo
    4. m - hora de modificación de la referencia del archivo
    5. t: la referencia se interpreta directamente como un tiempo

    Esto significa que solo se considerarán los archivos modificados el 2016-12-06:

    # find . -maxdepth 1 -newermt "2016-12-06"
    

    Importante: use el formato de fecha correcto como referencia en el comando de búsqueda anterior, una vez que use un formato incorrecto, obtendrá un error como el siguiente:

    # find . -maxdepth 1 -newermt "12-06-2016"
    
    find: I cannot figure out how to interpret '12-06-2016' as a date or time
    

    Alternativamente, use los formatos correctos a continuación:

    # find . -maxdepth 1 -newermt "12/06/2016"
    OR
    # find . -maxdepth 1 -newermt "12/06/16"
    

    Puede obtener más información sobre el uso de los comandos ls y find en nuestra siguiente serie de artículos sobre el mismo.

    1. Domine el comando "ls" de Linux con estos 15 ejemplos
    2. 7 trucos extravagantes "ls" útiles para usuarios de Linux
    3. Domine el comando "buscar" de Linux con estos 35 ejemplos
    4. Formas de encontrar varios nombres de archivo con extensiones en Linux

    En este artículo, explicamos dos consejos importantes sobre cómo enumerar solo los archivos de hoy con la ayuda de ls y los comandos de búsqueda. Utilice el formulario de comentarios a continuación para enviarnos cualquier pregunta o comentario sobre el tema. También puede informarnos de cualquier comando utilizado para el mismo objetivo.