Comando para remover todos os arquivos, exceto alguns mais recentes, que funcionam tanto para o solaris quanto para o linux

0

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
    
por Ankit 26.06.2017 / 14:38

3 respostas

0

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
por 26.06.2017 / 15:47
0

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

    
por 27.06.2017 / 10:35
0

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.

    
por 16.05.2018 / 15:57