Durante alguns anos, no meu $HOME
diretório, muitos arquivos e diretórios ocultos apareceram.
Eu gostaria de excluir continuamente os desnecessários.
Como posso descobrir quais aplicativos criaram esses arquivos e diretórios ocultos.
Como posso ter certeza de que é seguro remover os arquivos e diretórios ocultos e nada importante será perdido e nada dependendo deles não parará de funcionar?
Respostas:
Você pode apenas substituí-los temporariamente.
Isso encontrará todos os arquivos em seu
$HOME
diretório - sem recorrer a diretórios filhos - que não foram acessados por um ano. Ele atualizará o tempo de acesso de todos eles agora e depois os moverá para um diretório chamado.trash
. Se você encontrar algum problema entre o momento em que o executa e o momento em que decide começar a excluir arquivos antigos~/.trash
, tente mover alguns deles de volta e ver se algum deles foi colocado na lixeira.fonte
relatime
substituídos. fromman mount
::relatime
atualiza os tempos de acesso do inode em relação à modificação ou alteração da hora. O tempo de acesso é atualizado apenas se o tempo de acesso anterior for anterior ao tempo de modificação ou alteração atual. (Semelhante anoatime
, mas não quebramutt
ou outros aplicativos que precisam saber se um arquivo foi lido desde a última vez em que foi modificado.) E, de qualquer maneira, use-m
e-mtime
trabalhe com modtime. ou o que você quiser.Se você é o root do seu sistema, pode usar o recurso de kernel de auditoria para obter o máximo de informações sobre quem / quando / o que acessou / criou / modificou arquivos. veja este tutorial para exemplos com sabor debian
Se você não tiver acesso root, poderá usar um crontab ou um script com um loop infinito + suspensão para executar arquivos lsof & grep em seu homedir. Veja a página de manual de lsof . No entanto, ele exibirá apenas seus aplicativos que possuem um editor de arquivos aberto no momento em que você inicia o lsof. Se um aplicativo abrir um arquivo, editá-lo e fechá-lo, você não verá essa alteração em lsof.
um one-liner como este deve fazer o trabalho:
lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
Outra maneira é usar a API do kernel inotify para verificar quando um arquivo está sendo acessado. Infelizmente, é um sistema assíncrono e você não terá detalhes como "qual aplicativo", "precisamente quando", "qual usuário". Você terá apenas um retorno de chamada sobre "este arquivo foi modificado / acessado ...". Alguns aplicativos (Inotify, FAM, gamin) fornecem acesso simples à API
fonte
inotify
para dispararlsof
. O sistema é muito rápido para que essa idéia funcione: o processo geralmente desaparece ou fechou o arquivo antes que o lsof possa ser executado. Em alguns casos, isso ainda pode funcionar, mas provavelmente muito poucos.Você pode procurar
atime
e remover arquivos não utilizados por um longo período de tempo (desde que você não configurou o sistema para não usar atime), mas isso é bastante arriscado (vejatmpreaper
se você deseja seguir esse caminho).Em vez disso, sugiro o Bleachbit , um programa interativo da GUI para remover a sujeira.
fonte