Выбор ответа Senior Файловая система и права обновлено
Почему mv большого файла мгновенный
Вопрос
Почему mv /data/big.iso /data/archive/ для файла в 50 ГБ выполняется мгновенно, а mv /data/big.iso /mnt/usb/ долго?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В одной ФС mv делает rename(), а между ФС копирует данные. Имя файла живёт в каталоге, данные в inode. rename() в пределах ФС переносит запись «имя → inode», данные не трогает.
Варианты ответа
- Первый вызов кеширует файл в памяти и пишет его на диск позже
- В первом случае
mvзапускает копирование в фоне и сразу выходит - В одной ФС
mvделаетrename(), а между ФС копирует данныеправильный ответ - USB-диск смонтирован только для чтения, и
mvповторяет попытки
Разбор
Имя файла живёт в каталоге, данные в inode. rename() в пределах ФС переносит запись «имя → inode», данные не трогает. Между разными ФС inode не перенести, поэтому mv копирует байты и удаляет исходник. Фонового копирования и кеширования тут нет, а ФС только для чтения дала бы ошибку, а не медленную работу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.