Durante unos años, en mi $HOME
directorio aparecieron muchos archivos y directorios ocultos.
Me gustaría eliminar continuamente los innecesarios.
¿Cómo puedo averiguar qué aplicaciones crearon esos archivos y directorios ocultos?
¿Cómo puedo estar seguro de que es seguro eliminar los archivos y directorios ocultos y que nada importante se perderá y que nada, dependiendo de ellos, no dejará de funcionar?
Respuestas:
Puedes desplazarlos temporalmente.
Eso encontrará todos los archivos en su
$HOME
directorio, sin recurrir a directorios secundarios, a los que no se ha accedido durante un año. Actualizará el tiempo de acceso para todos ellos en este momento y luego los moverá a un directorio llamado.trash
. Si encuentra algún problema entre el momento en que lo ejecuta y el momento en que decide comenzar a eliminar archivos antiguos~/.trash
, puede intentar mover algunos de ellos y ver si alguno de los que puso en la papelera fue la causa.fuente
relatime
. desdeman mount
::relatime
Actualice los tiempos de acceso de inodo en relación con el tiempo de modificación o cambio. El tiempo de acceso solo se actualiza si el tiempo de acceso anterior era anterior al tiempo de modificación o cambio actual. (Similar anoatime
, pero no se rompemutt
ni a otras aplicaciones que necesitan saber si un archivo se ha leído desde la última vez que se modificó) y, de todos modos, use-m
y-mtime
para trabajar con modtime. o lo que quierasSi es la raíz de su sistema, puede usar la función de kernel de auditoría para tener la máxima información sobre quién / cuándo / qué accedió / creó / modificó archivos. vea este tutorial para ejemplos con sabor a debian
Si no tiene acceso de root, puede usar un crontab o un script con un bucle infinito + dormir para ejecutar archivos lsof y grep en su homedir. Consulte la página de manual de lsof . Sin embargo, solo mostrará sus aplicaciones que tengan un descriptor de archivo abierto en el momento en que inicie lsof. Si una aplicación abre un archivo, edítelo y luego ciérrelo, no verá este cambio en lsof.
una frase como esta debería hacer el trabajo:
lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
Otra forma es utilizar la API de kernel inotify para verificar cuándo se accede a un archivo. Por desgracia, es un sistema asíncrono, y no tendrá detalles como "qué aplicación", "precisamente cuándo", "qué usuario". Solo tendrá una devolución de llamada sobre "este archivo fue modificado / accedido ...". Algunas aplicaciones (Inotify, FAM, gamin) le brindan acceso simple a la API
fuente
inotify
para dispararlsof
. El sistema es simplemente demasiado rápido para que esta idea funcione: el proceso a menudo desaparece o ha cerrado el archivo antes de que lsof pueda ejecutarse. En algunos casos, esto podría funcionar, pero probablemente muy pocos.Puede buscar
atime
y eliminar archivos que no se utilizaron durante mucho tiempo (siempre que no haya configurado su sistema para no usar atime), pero eso es bastante arriesgado (veatmpreaper
si desea seguir este camino).En cambio, sugeriría Bleachbit , un programa GUI interactivo para eliminar cruft.
fuente