mv: когда станет доступен конечный файл?

Предположим, один процесс делает это: mv большой файл в место назначения directory

Другой процесс следит за этим файлом в каталоге назначения, потому что он хочет как можно скорее прочитать его содержимое. Гарантирует ли файловая система, что второй процесс "видит" файл только тогда, когда он полностью доступен?

Я просмотрел страницу руководства для mv , но не увидел никаких гарантий ...

2
задан 24 February 2016 в 20:29
1 ответ

Это будет во многом зависеть от того, находятся ли исходный и целевой файлы в одной файловой системе (в этом случае используется rename (2) ] выполняется †, что является настолько атомарным, насколько это возможно) или другой файловой системой (совсем не атомарной, и процесс может легко увидеть неполный файл, особенно если система, сеть или файловая система медленные).

† на основе strace из mv , которую я сделал много лет назад в Linux, поэтому YMMV с различными реализациями mv .

3
ответ дан 3 December 2019 в 10:38

Теги

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