Como posso excluir o diretório mais antigo de um diretório?

Como posso excluir o diretório mais antigo de um diretório?

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 paraimprima o diretório mais antigo:

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

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

rm -rf [oldest directory name]

Como posso combinar os dois para excluir a pasta mais antiga?

Responder1

Isso deve funcionar com qualquer caminho (Obrigado a @StéphaneChazelas pelaheadtruque) e deve ser compatível com POSIX (formatado para facilitar a leitura):

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

Para realmente remover o diretório, substitua printf %qporrm -rf --

informação relacionada