Como remover todos os últimos 10 arquivos [duplicados]

2

Eu acumulo arquivos nomeados seqüencialmente como resultado de um processo automatizado, e gostaria de manter apenas os últimos 10 ao redor. Eu tentei isso, que teve o efeito de excluir tudo:

ls -r | more +11 | xargs rm

Aparentemente, canalizar more +n faz com que todo o resultado seja canalizado, sem levar em conta o argumento +n .

Qual seria a abordagem correta?

    
por nw. 11.03.2015 / 03:27

1 resposta

3

Eu admito, nada na documentação do more diz para mim que isso vai acontecer. Mas, desde que você queira começar a exibir (saída / processamento) a entrada (lista de arquivos) em um número de linha especificado (especificamente, 11), o comando lógico a ser usado é tail :

ls -r | tail -n +11 | …

Uma palavra para o sábio: teste coisas como essa, canalizando para cat ou xargs (sem comando) antes de fazer algo perigoso como xargs rm .

    
por 11.03.2015 / 03:51