En este artículo, explicaremos dos simples consejos de la línea de comandos que te permiten listar únicamente todos los archivos de hoy.
Uno de los problemas comunes que enfrentan los usuarios de Linux en la línea de comandos es localizar archivos con un nombre específico, puede ser mucho más fácil cuando realmente conoces el nombre del archivo.
Sin embargo, suponiendo que has olvidado el nombre de un archivo que creaste (en tu carpeta home
que contiene cientos de archivos) en un momento anterior durante el día y aún así necesitas usarlo urgentemente.
A continuación se muestran diferentes formas de listar únicamente todos los archivos que creaste o modificaste (directa o indirectamente) hoy.
1. Usando el comando ls, puedes listar únicamente los archivos de hoy en tu carpeta home de la siguiente manera, donde:
-a
– lista todos los archivos incluyendo los ocultos-l
– habilita el formato de listado largo--time-style=FORMAT
– muestra la hora en el FORMATO especificado+%D
– muestra/utiliza la fecha en formato %m/%d/%y
# ls -al --time-style=+%D | grep 'date +%D'

Además, puedes ordenar la lista resultante alfabéticamente incluyendo la bandera -X
:
# ls -alX --time-style=+%D | grep 'date +%D'
También puedes listar basado en el tamaño (el más grande primero) usando la bandera -S
:
# ls -alS --time-style=+%D | grep 'date +%D'
2. Además, es posible utilizar el comando find, el cual es prácticamente más flexible y ofrece muchas más opciones que ls, con el mismo propósito que se muestra a continuación.
- El nivel
-maxdepth
se utiliza para especificar el nivel (en términos de subdirectorios) debajo del punto de inicio (directorio actual en este caso) en el cual se llevará a cabo la operación de búsqueda. -newerXY
, esto funciona si la marca de tiempo X del archivo en cuestión es más reciente que la marca de tiempo Y del archivo de referencia. X e Y representan cualquiera de las letras a continuación:- a – tiempo de acceso del archivo de referencia
- B – tiempo de creación del archivo de referencia
- c – tiempo de cambio de estado del inodo de referencia
- m – tiempo de modificación del archivo de referencia
- t – la referencia se interpreta directamente como una marca de tiempo
Esto significa que solo se considerarán los archivos modificados el 06-12-2016:
# find . -maxdepth 1 -newermt "2016-12-06"

Importante: Utilice el formato de fecha correcto como referencia en el comando find anterior, una vez que use un formato incorrecto, recibirá 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, utilice 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 serie de artículos a continuación.
- Domine el comando ‘ls’ de Linux con estos 15 ejemplos
- 7 trucos útiles y peculiares de ‘ls’ para usuarios de Linux
- Domine el comando ‘find’ de Linux con estos 35 ejemplos
- Formas de encontrar varios nombres de archivo con extensiones en Linux
En este artículo, explicamos dos consejos importantes sobre cómo listar solo los archivos de hoy con la ayuda de los comandos ls y find. Utilice el formulario de comentarios a continuación para enviarnos cualquier pregunta o comentario sobre el tema. También puede informarnos sobre cualquier comando utilizado para el mismo objetivo.
Source:
https://www.tecmint.com/find-recent-modified-files-in-linux/