Что касается хорошего подхода, я не уверен.Кажется, много работоспособного, но странного.
Я бы поместил old_dir в / var / local / имя проекта
РЕДАКТИРОВАТЬ: Не видя достаточно, чтобы по-настоящему понять, ведет ли вас неправильнопуть, я как-то думаю, что правильный способ сделать это - использовать каталоги спулинга.
Это работает так:
- Новый рабочий файл создается в / var / spool / appname/tmp.
- Файл перемещается в / var / spool / appname (требуется та же файловая система)
- Файл выбирается из / var / spool / appname, обрабатывается и удаляется (или перемещается, еслиэто более уместно)
Шаг 2 - это атомная передача обслуживания.Шаг 3, возможно, должен быть защищен, так что обработка одного и того же файла дважды безвредна.
Опять же, если у вас есть что-то вроде сохранения полной истории, а символическая ссылка ссылается на текущий, вы уже делаете это правильно.