Bash scripting: удаление самого старого каталога
Я хочу найти самый старый каталог (внутри каталога) и удалить его. Я использую следующее:
rm -R $(ls -1t | tail -1)
ls -1t | tail -1
действительно дает мне самый старый каталог, проблема в том, что он не удаляет каталог, и что он также перечисляет файлы.
Как я могу это исправить?
4 ответов
rm -R "$(find . -maxdepth 1 -type d -printf '%T@\t%p\n' | sort -r | tail -n 1 | sed 's/[0-9]*\.[0-9]*\t//')"
это также работает с каталогом, имя которого содержит пробелы, вкладки или начинается с "-".
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
Вы должны удалить Эхо перед rm, если он дает правильные результаты