У меня есть два каталога в одном родительском каталоге. Вызовите родительский каталог base и дочерние каталоги alpha и bravo . Я хочу заменить alpha на bravo . Самый простой способ:
rm -rf alpha
mv bravo alpha
Команда mv является атомарной, но команда rm -rf - нет. Есть ли в bash простой способ атомарной замены alpha на bravo ? Если нет, то есть ли сложный путь?
ДОПОЛНЕНИЕ:
Кстати, это не является непреодолимой проблемой, если каталог не существует в течение короткого периода времени. Есть только одно место, которое пытается получить доступ к альфе, и оно проверяет, существует ли альфа, прежде чем делать что-либо критическое. Если нет, то выдает сообщение об ошибке. Но было бы неплохо, если бы был способ сделать это. :) Может быть, есть какой-то способ изменить иноды напрямую или что-то в этом роде ...