Precisa de um script para excluir todos os arquivos temporários começando com ~$

Precisa de um script para excluir todos os arquivos temporários começando com ~$

Uma verificação recente em nosso servidor de arquivos em busca de arquivos temporários com~$anexado ao início do nome produziu quase 1.000 resultados.

As datas de "última modificação" desses arquivos remontam a 2003 (portanto, geralmente são redundantes agora e podem ser excluídos com segurança).

Preciso de um script que identifique e exclua todos os arquivos começando com "~$", que eu possa agendar para ser executado uma vez por semana no servidor para limpar esses arquivos temporários automaticamente com frequência.

Responder1

Para um diretório específico, isso excluiria todos os arquivos com nomes começando com ~$ recursivamente:

find /path/to/directory -type f -name '~$*' -exec rm '{}' \;

Para limitá-lo apenas a esse diretório específico e não a seus subdiretórios, use maxprofundidade:

find /path/to/directory -maxdepth 1 -type f -name '~$*' -exec rm '{}' \;

Altere o argumento integral para -maxdepthdependendo do nível pretendido de diretórios nos quais pesquisar arquivos.

Outra abordagem mais simples é usar globs, mas não é realmente uma boa ideia, pois tentaria tocar em diretórios que correspondam ao padrão. Ainda não os excluirá, mas você terá que se preocupar com a mensagem de erro. Você poderia usar -fa opção ou enviar a saída de erro, /dev/nullmas já está sujo para um método:

rm '/path/to/directory/~$'*

informação relacionada