O mais próximo que você pode descobrir quando um arquivo foi executado pela última vez é pelo atime
em vez do tempo de modificação - a execução não modifica os arquivos. No entanto, não há como saber se o arquivo foi acessado por algum outro motivo. Embora, se um arquivo não tenha sido acessado dentro de um período de tempo específico, ele não pode ter sido executado.
Para listar arquivos executáveis não acessados por mais de 24 horas, você pode fazer:
find workspace_dir -type f -perms /111 -atime +1
Para excluí-los ( certifique-se de excluir apenas os que deseja primeiro ):
find workspace_dir -type f -perms /111 -atime +1 -exec rm {} +
Observe que, com SSDs, é comum montar com a opção noatime
para reduzir o número de gravações em disco e aumentar a vida útil. Se o sistema de arquivos estiver montado com a opção noatime
, isso não funcionará.
Atualizar
Se esses arquivos forem Java .class
, eles não serão executáveis diretamente. Para pesquisar / remover .class
arquivos acessados há mais de 24 horas:
find workspace_dir -type f -name '*.class' -atime +1
find workspace_dir -type f -name '*.class' -atime +1 -exec rm {} +