Aprenda Linux

Cómo buscar y enumerar de forma recursiva los archivos por fecha en Linux

Cómo buscar y enumerar de forma recursiva los archivos por fecha en Linux

La principal razón por la que la mayoría de los usuarios de sistemas operativos eligen Linux sobre otros sistemas operativos es la libertad de explorar. Con Linux, está sujeto a algunas reglas del sistema operativo poco acopladas. El sistema operativo predefine algunas reglas estándar cambiables para usar dentro de su entorno.

Una vez que te quites el abrigo de principiante, puedes salirte de estas reglas predeterminadas y crear tu propio. Bajo Linux, el sistema operativo es su servidor leal y usted el maestro.

Este caso no es viable en otras distribuciones de sistemas operativos, ya que existen demasiadas abstracciones. Los sistemas operativos aquí son más de su asistente. Nunca se puede tener más poder que el sistema operativo, como en el caso de Linux. A medida que continúe desarrollando su experiencia de usuario en un entorno de sistema operativo Linux, su curiosidad por el sistema operativo crecerá a diario. Siempre querrás saber qué se esconde aquí y qué más puedes hacer bajo su paraguas.

Trabajar con archivos y directorios en Linux

Un escenario perfecto es su interacción diaria con archivos y carpetas en el entorno del sistema operativo Linux. El uso del sistema de archivos del SO Linux implica más que simplemente crear, editar, modificar y eliminar los sistemas de archivos y carpetas del usuario. Cada acción vinculada con los archivos y carpetas / directorios del usuario en un entorno Linux deja una huella de usuario o huella digital. Es como entrar en una habitación para tocar e intercambiar elementos.

Si un propietario o cuidador de Linux administra esta habitación a la que ingresó, sabrá exactamente lo que hizo y qué elementos tocó o intercambió. Linux tiene comandos útiles para ayudarnos a lograr tales resultados. Sabrá qué sucedió con los archivos y carpetas en su sistema operativo Linux e identificará estas acciones en función de cuándo sucedieron.

En resumen, cuando se trata de archivos y directorios en un entorno de sistema operativo Linux, podemos crear una línea de tiempo de eventos para identificar modificaciones de archivos vulnerables a través de marcas de tiempo adjuntas a cada modificación. Como ventaja, sabrá si la modificación se asoció con contenido malicioso a través de los registros del sistema generados.

Los comandos de Linux para usar

Canalizaremos algunos comandos simples para ayudarnos a comprender la implicación objetivada de este artículo. Primero debe iniciar su terminal y navegar por una ruta del sistema que sepa que tiene muchos archivos y directorios de carpetas. Para estar seguro y no jugar con los archivos vulnerables de su sistema, puede usar su directorio "Documentos" que generalmente está predefinido en el sistema operativo Linux. El siguiente comando debería llevarlo a este directorio "Documentos".

$ cd ~ / Documentos

Es un directorio popular con muchos archivos y subdirectorios. Otro directorio que se puede utilizar para este experimento de artículo es el directorio "Descargas". Es un lugar donde nunca se perderá los archivos descargados y otros subdirectorios.

$ cd ~ / Descargas

Para iniciar este experimento, necesitamos una salida de muestra que se pueda relacionar desde nuestra terminal. Teclearemos una cadena de comando en nuestro terminal que nos permitirá listar archivos activos y sus subdirectorios asociados. Además, cada elemento de la salida resultante de este comando se vinculará con una marca de tiempo que apunta al último intento de modificación en el archivo, directorio o subdirectorio asociado.

La cadena de comandos a utilizar es la siguiente:

$ encontrar . -printf '% T @% t% p \ n' | sort -k 1 -n | cortar -d "-f2-

La captura de pantalla a continuación es la salida para usar la cadena de comando anterior.

salida de muestra del uso del comando buscar, ordenar y cortar

Desde un punto de vista analítico, la pantalla inferior de la salida del comando representa los elementos modificados recientemente en su directorio de trabajo principal. La lista de salida puede ser larga, dependiendo de los archivos y carpetas que tenga en su máquina. Al desplazarse hacia arriba en el terminal de salida, se revelan archivos y modificaciones de carpetas más antiguos. En resumen, tenemos un resultado que clasifica los archivos y las modificaciones de carpeta más antiguos con las modificaciones más recientes.

Como habrá notado, la cadena de comando anterior que pegó en su terminal tiene tres argumentos de comando importantes. Necesitamos entender lo que hace cada uno de ellos.

Encontrar

El comando "buscar" es el primero en ejecutarse desde la cadena de comandos. Tiene el único objetivo de enumerar de forma recursiva los archivos y directorios activos en su directorio de trabajo principal. La "."El argumento que sigue al argumento" buscar "apunta este comando al directorio de trabajo actual. Si no está seguro del directorio en el que se encuentra; puede introducir el comando "pwd" en su terminal. Imprimirá la ruta al directorio en el que se encuentra actualmente.

La ".El argumento "se traduce como la salida del comando" pwd ". Facilita la búsqueda de archivos y directorios de su directorio de trabajo actual. El siguiente argumento de la cadena de comandos es "-printf". Es una bandera para un argumento de impresión. Imprime los archivos y directorios en su directorio de trabajo actual en un formato específico. El formato que toma se especifica mediante el argumento "% T @% t% p \ n". Es el argumento del comando que lo sigue inmediatamente.

La parte '% T @' de este argumento representa el tiempo de época. Por definición, tiempo de época o época de Unix es la marca de tiempo del 1 de enero de 1970. Se representa como 00:00:00 UTC. La salida en su terminal toma este formato para representar las fechas de modificación asociadas con los archivos y directorios listados. La parte '% t' del argumento ahora toma el formato de tiempo de época para mostrar la última marca de tiempo de modificación asociada con los archivos y directorios enumerados.

Dependiendo de su distribución o sabor de Linux, es posible que la salida del terminal no muestre el tiempo de época asociado con la lista de salida de archivos modificados. Esta declaración es una prueba de la salida de mi final.

La parte '% p' ​​del argumento genera los nombres de los archivos mostrados en ese directorio de trabajo actual. Finalmente, la parte '/ n' del argumento sirve para un carácter de nueva línea. Después de cada lista sucesiva de un archivo modificado, este carácter de nueva línea toma el cursor de la pantalla y salta la siguiente pantalla del archivo a una nueva línea en la pantalla del terminal. Nos facilita asociar cada archivo mostrado de manera diferente.

Otro enfoque para trabajar con la cadena de comandos indicada anteriormente es reemplazar la parte '% t' del argumento "% T @% t% p \ n" por '% c'. La cadena de comandos resultante debe tener un aspecto similar al siguiente:

$ encontrar . -printf '% T @% c% p \ n' | sort -k 1 -n | cortar -d "-f2-

El resultado de ejecutar esta cadena de comando debería producir un resultado similar a la siguiente captura de pantalla.

cambiar argumentos en el comando buscar archivo recursivamente

Observar la captura de pantalla anterior revela con atención la siguiente observación. La lista de salida de archivos en el directorio de trabajo actual se muestra con una "hora del último cambio de estado" en lugar de la "hora de modificación". Es el efecto de reemplazar '% c' con '% t' en "% T @% t% p \ n". Este último comando imprime los cambios de permisos asociados con la lista de archivos generados. Es posible que el contenido de los archivos no cambie, pero los metadatos asociados a ellos sí.

En esta etapa, los resultados de salida no siguen ningún orden cronológico, ya que aún tenemos que abordar el comando de clasificación. Primero se imprime la marca de tiempo de modificación, seguida del nombre del archivo asociado.

Clasificar

Este argumento de comando tiene tres parámetros, a saber, '-k', '1' y 'n'. El comando sort es responsable del orden en el que aparece la salida de la lista de archivos en nuestras pantallas. En este caso, la fecha de modificación se imprime primero, seguida de la ruta del archivo al archivo o directorio modificado. La parte '-k' de este argumento de comando indica la posición de inicio para comenzar el proceso de clasificación.

La parte '-k' del argumento del comando sort posee una pregunta respondida por la parte '1' del mismo argumento. En este caso, el proceso de clasificación comienza desde la primera columna como lo indica '1'. El argumento del comando sort también es responsable de que el archivo modificado más reciente esté al final de la lista y el más antiguo al principio. La parte '-n' del argumento es responsable del tiempo numérico con precisión de puntos decimales.

Si usa '-nr' en lugar de '-n', la salida de la cadena de comando tendrá los archivos y directorios recién modificados en la parte superior de la salida del terminal y las modificaciones de archivos antiguos en la parte inferior. Invierte el orden de clasificación de la salida del terminal.

Cortar

El propósito principal del argumento del comando "cortar" es organizar la salida de la impresión de nuestra terminal de una manera ordenada. Las opciones '-d' y "de este argumento de comando se combinan para generar espacios en blanco y luego cortar la impresión de los detalles del contenido del archivo que podría intentar tener éxito en estos espacios en blanco.

Con esta sencilla cadena de comandos, puede imprimir de forma recursiva los archivos en su directorio de trabajo actual, con cada salida vinculando dichos archivos a sus fechas de modificación.

Opciones de comando alternativas

Podría argumentar que el comando "ls -lrt" enumera perfectamente todos los archivos dentro de una ruta de directorio activo en su sistema operativo Linux, desde el más antiguo para modificar hasta el más nuevo. Por otro lado, este comando no considera el contenido del archivo existente en las subcarpetas. Si enumerar subdirectorios no es su objetivo, puede agregar el argumento "-type f" a la cadena de comandos. Considere la siguiente modificación del comando.

$ encontrar . -escriba f -printf '% T @% t% p \ n' | sort -k 1 -n | cortar -d "-f2-

El uso del argumento del comando "-type d" tendrá un efecto opuesto al comando anterior. Su terminal solo generará directorios modificados del más antiguo al más nuevo. Considere su implicación de la siguiente manera:

$ encontrar . -escriba d -printf '% T @% t% p \ n' | sort -k 1 -n | cortar -d "-f2-

Nota final

Ahora está familiarizado con el tutorial de impresión recursiva de archivos y directorios en su directorio de trabajo actual con el conocimiento adicional de saber cuándo se modificaron por última vez en función de sus marcas de tiempo asociadas.

A partir de este conocimiento, tiene la capacidad de componer una línea de tiempo de eventos que revela cronológicamente el orden de modificación de archivos y directorios junto con la ruta a su ubicación de almacenamiento.

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...