Como sabe, los volcados de registro a veces se comparten entre los usuarios para su posterior procesamiento. Algunas personas almacenan registros para su uso posterior, incluso después de terminar el trabajo.
En lugar de volverse útil, se convirtió en una gran basura que debe eliminarse del sistema.
Cuando ve el archivo, hay una gran cantidad de archivos disponibles, de los cuales desea eliminar los archivos que tienen X días o posiblemente X veces más que la última vez que accedió o modificó el archivo.
Si tiene necesidades similares, entonces creo que este artículo definitivamente lo ayudará.
Tabla de Contenidos
¿Qué comando utilizó para realizar esta tarea?
En este caso, su mejor opción es usar el comando de búsqueda, que primero encontrará el archivo en función de una de las siguientes opciones: -amin, -atime
, -cmin
, -ctime
, -mmin,
y -mtime
.
Una vez que el comando de búsqueda encuentra el archivo según los parámetros que configuró, puede usar -delete
opción o uso xargs
Eliminar archivos del sistema.
Sencillo, ¿verdad? Echemos un vistazo a algunos comandos basados en escenas.
Buscar y eliminar archivos con más de X o N días
Supongamos que quiero buscar y eliminar archivos que no se han utilizado durante más de 7 días.En este caso diría -atime
Es hora de necesitarlo, así que primero le daré una introducción a la sintaxis del comando. Luego invocaremos el comando en el sistema.
$ find /specify-path/ -atime +N
find
: Todos conocen el programa de búsqueda/specify/path/
: define la ruta para ejecutar el comando de búsqueda-atime
: se accedió al archivo hace menos de, más de o hace exactamente 24 horas-
+N
: Mencione el número de días en el formato de hoy
El comando anterior mostrará los nombres de archivo a los que no se ha accedido durante cuánto tiempo N días.
Si está seguro del comportamiento del comando anterior, debe agregar más líneas al comando predeterminado para ejecutar funcion rm Al filtrar los resultados, una vez que los archivos se eliminen del sistema, se imprimirán sus nombres de archivo.
$ find /specify-path/ -atime +N -exec rm {} \; -print
Siempre se recomienda que primero verifique los resultados del comando de búsqueda y luego ejecute la función rm para evitar la pérdida de datos.
Lea también: ¿Adónde van los archivos cuando se ejecuta el comando rm?
Para explicarte mejor, déjame crear un par de archivos de más de 7 días, usando touch
OrdenarEl comando .touch generalmente se usa para crear nuevos archivos, pero también puede usarlo para cambiar los tiempos de acceso y modificación.
Sin embargo, podemos hacer esto con archivos antiguos, pero en lugar de hacer esto, Crear un nuevo archivo usar -t
(marca de tiempo) usando el siguiente comando.
$ touch -t 202208281024 sample_A
$ touch -t 202208291024 sample_B
$ touch -t 202208301024 sample_C
$ touch -t 202208311024 sample_D
$ touch -t 202209011024 sample_E
$ touch -t 202209021024 sample_F
$ touch -t 202209031024 sample_G
$ touch -t 202209041024 sample_H
Si desea aprender a decodificar marcas de tiempo, consulte este artículo:
Después de eso, ejecute parte del comando para ver el nombre del archivo y, una vez que esté satisfecho con el nombre del archivo, agregue otra parte del comando para ver el resultado.
$ find . -atime +7
A continuación se muestra la salida del comando anterior.
Si desea estar más seguro acerca de la salida, puede utilizar stat
Ordenar Verifique la última hora de acceso ejecutando:
Después de determinar el resultado, puede ejecutar el comando Borrar archivos Use el siguiente comando de su sistema, volverá a encontrar el nombre de archivo en función de su línea de tiempo, luego eliminará el archivo e imprimirá el nombre de archivo.
$ find . -atime +7 -exec rm {} \; -print
Comportamiento del comando anterior:
Puede hacer que el comando anterior sea más sólido agregando tipos de archivos.
Como sabe, estamos buscando archivos normales que no se hayan utilizado durante más de 7 días, y no quiero tocar ningún directorio al que no se haya accedido en una semana. En ese caso, definitivamente necesito mencionar explícitamente el tipo de archivo.
$ find . -atime +7 -type f -exec rm {} \; -print
Alternativamente, también puede usar -newerXY
Opción para eliminar archivos según la fecha que especifique. XY
Debe ser reemplazado con los siguientes caracteres: 'a'
(derecho de uso),'B'
(nacido),'c'
(cambios de inodo),'m'
(Modificado),'t'
(tiempo) Referirse a.
Puede eliminar archivos según sus preferencias usando el formato de fecha general siguiendo la sintaxis a continuación.
$ find /specify-path/ -type f -not -newerat "YYYY-MM-DD HH:MI:SS" -delete -print
Supongamos que quiero eliminar todos los archivos a los que he accedido antes 2022-08-31 usar -no y -newerat opciones
Para esta situación, se me ocurrió un comando que me parece perfecto. Sé que estás preguntando por el tiempo, pero puedes evitarlo.
$ find . -not -newerat "2022-08-31" -delete -print
El comportamiento del comando anterior.
Encuentra y elimina archivos modificados en X minutos
A veces, es posible que desee eliminar archivos en función del momento de la modificación, por ejemplo, para eliminar todos los archivos del directorio actual al que se ha accedido en los últimos X minutos.
Supongamos que quiero eliminar archivos que se han modificado en los últimos 30 minutos. En este punto, debe ejecutar el siguiente comando, que eliminará todos los archivos modificados recientemente.
$ find . -mmin -30 -type f -delete -print
El comportamiento del comando anterior.
En lugar de eliminar el archivo directamente, primero puede verificar el resultado del comando de búsqueda llamando al siguiente código. Después de eso, puede llamar al comando anterior para eliminar el archivo.
$ find . -mmin -30
Incluso puede hacer que su salida sea concisa usando –mmmin como condicional, pero como hago –mmmin como condicional? Un ejemplo es sencillo.
Suponga que desea buscar archivos modificados en los últimos 50 minutos de un intervalo de tiempo y, dentro del mismo intervalo de tiempo, también desea conocer los archivos modificados en los últimos 30 minutos.
En este caso debes usar el siguiente comando:
$ find . -mmin -50 -mmin +30
El comportamiento del comando anterior.
LEA TAMBIÉN: Cómo encontrar el tamaño total de un directorio en Linux
Use indicaciones para buscar y eliminar archivos con más de X días
Inseguro para correr rm
o usar -delete
opciones hasta que esté seguro de que encontró el resultado correcto para usted.
A menudo cometemos errores al ingresar nombres de archivo o usar parámetros incorrectos, lo que eliminará todos los archivos en los subdirectorios actual y, porque el comando de búsqueda verifica recursivamente el patrón especificado a lo largo de la ruta especificada.
Estoy seguro de que entiendes lo que quiero decir.Entonces es mejor usar el resultado de la verificación primero -Impresión, De lo contrario, puede usar el siguiente comando que le pedirá permiso antes de eliminarlo del sistema.
$ find . -atime +7 -exec rm -i {} \; -print
El comportamiento del comando anterior.
Lea también: 20+ Encuentra comandos que puedes usar todos los días
envolver
¡Eso es todo por ahora!
Bueno, en este artículo, ha aprendido a usar -atime y varias otras opciones para buscar y eliminar archivos a los que no se ha accedido durante mucho tiempo.
Puede obtener más información sobre el comando de búsqueda en el manual, que puede leer escribiendo un comando simple en la terminal man find
.
Si este artículo fue útil para usted, deje un comentario sobre su experiencia. Con esto doy por concluido este post. Volveremos a encontrarnos con un nuevo tema. ¡Hasta ahora, adiós!
Un tipo apasionado por la tecnología que ha explorado algunas tecnologías increíbles y está explorando más. En el camino, tuve la oportunidad de trabajar en el desarrollo de Android, Linux, AWS y DevOps utilizando varias herramientas de código abierto.