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 pelahead
truque) 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 %q
porrm -rf --