![Mantenha apenas as duas últimas pastas no diretório](https://rvso.com/image/1415072/Mantenha%20apenas%20as%20duas%20%C3%BAltimas%20pastas%20no%20diret%C3%B3rio.png)
Eu tenho um diretório que contém as seguintes pastas.
Data-2014-07-10-0240
Data-2014-07-10-0340
Data-2014-07-11-1232
Data-2014-07-12-0530
Data-2014-07-13-1210
Quero manter apenas as duas pastas mais recentes e excluir o restante. A pasta está neste formato: Data-YYYY-MM-DD-HHMM
.
Existe uma maneira de comparar os nomes das pastas, manter os mais recentes e excluir o restante? Posso acomodar isso mais tarde em meu script de shell.
Responder1
Presumo que o nome dos diretórios também seja a data e hora de sua criação. Se for assim então você pode usareupara listar os arquivos de acordo com o horário de modificação dos diretórios.
Isso listará os diretórios na ordem dos mais recentes primeiro
cd /PATH/TO/PARENT-DIRECTORY/
ls -lt
Para excluir todos os diretórios, exceto os 2 arquivos mais recentes: –
cd /PATH/TO/PARENT-DIRECTORY/
ls -lt | tail -n +4 | awk '{print $9}' | xargs rm -r
Observação:Primeiro, experimente em um ambiente de teste e confirme minuciosamente se isso é exatamente o que você deseja realizar e também se esse script funciona com seu conjunto de diretórios.