Como posso deletar o diretório mais antigo em um diretório?

0

Estou escrevendo um programa de backup e preciso executar um comando bash para excluir o diretório mais antigo em um diretório específico.

Eu encontrei este comando para imprimir o diretório mais antigo :

find -type f -printf '%T+ %p\n' | sort | head -n 1

E este comando para excluir um diretório e todo o seu conteúdo:

rm -rf [oldest directory name]

Como posso combinar entre esses dois para excluir a pasta mais antiga?

    
por itaied 09.07.2014 / 16:23

1 resposta

0

Isso deve funcionar com qualquer caminho (Obrigado ao @ StéphaneChazelas pelo % truque de head ) e deve ser Compatível com POSIX (formatado para legibilidade):

printf %q "$(
    find . -type d -printf "%T+ %p
printf %q "$(
    find . -type d -printf "%T+ %p%pre%" |
    tr '%pre%\n' '\n%pre%' |
    sort |
    head -n 1 |
    tr '%pre%\n' '\n%pre%' |
    sed -e 's/^[^ ]\+ //')"
" | tr '%pre%\n' '\n%pre%' | sort | head -n 1 | tr '%pre%\n' '\n%pre%' | sed -e 's/^[^ ]\+ //')"

Para remover o diretório, substitua printf %q por rm -rf --

    
por 09.07.2014 / 16:36

Tags