Какой пакет nix -предоставляет данный файл/двоичный файл/команду?

Вы получите правильный результат, выполнив cpвместе с mv. Это либо заменит «B» новой копией «A», либо оставит «B» таким, каким он был раньше.

cp A B.tmp && mv B.tmp B

обновление для соответствия существующимB:

cp A B.tmp && if [ ! -e B ]; then mv B.tmp B; else rm B.tmp; fi

Это не 100% атомарность, но близко к этому. Существует состояние гонки, когда две из этих вещей работают, обе одновременно входят в тест if, обе видят, что Bне существует, затем обе выполняют mv.

6
03.08.2021, 18:15
0 ответов

Теги

Похожие вопросы