Um comando de linha para excluir todas as últimas N revisões de um arquivo, exceto as

0

O que é um one-liner do Unix / Linux que me permitirá deletar todas as revisões N mais recentes de cada arquivo?

Eu tenho um monte de arquivos com números de revisão como parte de um sistema legado de gerenciamento de ativos:

bar.r7.js
bar.r8.js
bar.r9.js
bar.r10.js
bar.r11.js
foo.r1.js
foo.r2.js
foo.r3.js
foo.r4.js
...

Eu quero manter os três últimos de cada, portanto, na lista acima, o comando excluirá bar.r7.js , bar.r8.js e foo.r1.js .

    
por a paid nerd 31.03.2011 / 19:33

1 resposta

1
for name in foo bar; do
    printf '%s\n' "$name".r*.js | sort -V | head -n -3 | xargs -d '\n' rm -v
done
    
por 31.03.2011 / 20:44

Tags