Я пишу программу резервного копирования, и мне нужно выполнить команду bash для удаления самого старого каталога в определенном каталоге.
Я нашел эту командураспечатать самый старый каталог:
find -type f -printf '%T+ %p\n' | sort | head -n 1
А эта команда удаляет каталог и все его содержимое:
rm -rf [oldest directory name]
Как мне объединить эти две папки, чтобы удалить самую старую?
решение1
Это должно работать с любым путем (Спасибо @StéphaneChazelas заhead
обманывать) и должен быть совместим с POSIX (отформатирован для удобства чтения):
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/^[^ ]\+ //')"
Чтобы действительно удалить каталог, замените printf %q
наrm -rf --