Назад | Перейти на главную страницу

mv: когда доступен получившийся файл?

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

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

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

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

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