Estoy escribiendo un programa de respaldo y necesito ejecutar un comando bash para eliminar el directorio más antiguo en un directorio específico.
He encontrado este comando paraimprimir el directorio más antiguo:
find -type f -printf '%T+ %p\n' | sort | head -n 1
Y este comando para borrar un directorio y todo su contenido:
rm -rf [oldest directory name]
¿Cómo puedo combinar estos dos para eliminar la carpeta más antigua?
Respuesta1
Esto debería funcionar con cualquier ruta (Gracias a @StéphaneChazelas por elhead
truco) y debe ser compatible con POSIX (formateado para facilitar la lectura):
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 eliminar realmente el directorio, reemplácelo printf %q
conrm -rf --