scripts Bash: Al eliminar el directorio más antiguo
-
26-09-2019 - |
Pregunta
Quiero buscar el directorio más antiguo (dentro de un directorio), y eliminarlo. Estoy utilizando el siguiente:
rm -R $(ls -1t | tail -1)
ls -1t | tail -1
hace de hecho me da el directorio más antiguo, el problema es que no está eliminando el directorio, y que también archivos de lista.
¿Cómo podría fije por favor eso?
Solución
Esto no es bonito, pero funciona:
rm -R $(ls -lt | grep '^d' | tail -1 | tr " " "\n" | tail -1)
Otros consejos
rm -R "$(find . -maxdepth 1 -type d -printf '%T@\t%p\n' | sort -r | tail -n 1 | sed 's/[0-9]*\.[0-9]*\t//')"
Esto funciona también con el directorio cuyo nombre contiene espacios, tabulaciones o arranca con un "-".
rm -R $(ls -tl | grep '^d' | tail -1 | cut -d' ' -f8)
find directory_name -type d -printf "%TY%Tm%Td%TH%TM%TS %p\n" | sort -nr | tail -1 | cut -d" " -f2 | xargs -n1 echo rm -Rf
Debe eliminar el eco antes de la RM si produce los resultados correctos
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow