ls -t {pattern} | tail -n +2 | xargs rm
Em câmera lenta:
- listar todos os arquivos classificados por hora, os mais recentes primeiro
- imprimir começando com o segundo (assim, pule primeiro)
- passar nomes para
rm
Estou tentando um comando que remove todos os arquivos de um local, exceto o mais recente. Eu tenho o comando de trabalho para o Linux, mas não está funcionando na máquina solaris.
O comando abaixo removerá todos os arquivos, exceto os últimos 10.
ls -l /*.tps | head -n -10 | rm -rf
ls -t {pattern} | tail -n +2 | xargs rm
Em câmera lenta:
rm
Seguindo as man pages do Oracle e assumindo que você quer dizer com os arquivos 'mais recentes' 'os mais novos', estou sugerindo a seguinte abordagem:
ls -1tr | tail -n +11 | xargs rm
para linux e
ls -1tr | /usr/xpg4/bin/tail -n +11 | xargs rm
para o oráculo
Para remover todos os arquivos de um local, exceto o mais recente, use este comando de plataforma cruzada:
ls -1t /location | sed -n '2,$p' | xargs rm
O programa Sed 2,$p
imprime todas as linhas desde 2 até o final da entrada.