Para remover diretórios linux terminados em números de compilação

0

Eu tenho um caminho onde haverá diretórios de compilação copiados, então preciso manter apenas os diretórios mais recentes e excluir outros, não por data, mas com o número de compilação mais recente.

Se eu tiver os seguintes diretórios no caminho / tmp

1.1.0000-021, 1.1.0000-005 1.1.0000-018, 1.1.0000-004

Eu deveria estar excluindo o diretório 1.1.0000-004 no caminho / tmp como seu diretório mais antigo.

Eu estava tentando com rm -rf / base / caminho -tipo d -ctime 4, mas isso é baseado no arquivo mais recente, não tenho certeza sobre como obter o número mais antigo para excluir.

    
por guest 11.09.2014 / 11:35

1 resposta

0

Você pode usar a seguinte cadeia:

ls : lista de arquivos / diretórios

sort -nr : arquivos de classificação / diretórios numéricos, invertidos

tail : deixe na lista apenas as últimas entradas $ n (aqui: 4) (se apenas 4 permanecerem, a lista estará vazia)

por exemplo:

ls | sort -nr | tail +5 

Em seguida, pegue os arquivos e exclua-os; (isto é, com xargs + rm)

    
por 11.09.2014 / 13:33