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

1

Uma varredura recente em nosso servidor de arquivos para arquivos temporários com ~ $ anexada ao início do nome produziu quase 1.000 resultados.

As datas "Last Modified" desses arquivos remontam a 2003 (então, em geral, elas são todas redundantes e podem ser excluídas com segurança).

Eu preciso de um script que identifique e exclua todos os arquivos que começam com "~ $", que eu poderia agendar para executar uma vez por semana no servidor para limpar esses arquivos temporários automaticamente e com frequência.

    
por Austin ''Danger'' Powers 18.08.2013 / 21:41

1 resposta

2

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

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

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

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 para pesquisar arquivos.

Outra abordagem mais simples é usar globs, mas não é realmente uma boa ideia, uma vez que tentaria tocar em diretórios que correspondam ao padrão. Ainda não vai apagá-los, mas você teria que se preocupar com a mensagem de erro. Você pode usar a opção -f ou enviar a saída de erro para /dev/null , mas ela já está suja para um método:

rm '/path/to/directory/~$'*
    
por 18.08.2013 / 21:43