
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 -maxdepth
dependendo 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 -f
a opção ou enviar a saída de erro, /dev/null
mas já está sujo para um método:
rm '/path/to/directory/~$'*