for name in foo bar; do
printf '%s\n' "$name".r*.js | sort -V | head -n -3 | xargs -d '\n' rm -v
done
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
.