У меня был большой файл, который я двигаюсь. Обычный протокол в лаборатории должен скопировать его где-нибудь, а затем удалить.Почему копия медленнее, чем перемещение?
Я решил изменить его на mv.
Вопрос в том, почему mv намного быстрее, чем cp?
Чтобы проверить это, я создал файл размером 2.7 ГБ.
time cp test.txt copy.txt
Принимал реальные 0m20.113s
time mv test.txt copy.txt
Взял реальные 0m12.403s.
TL; DR mv было почти в два раза быстрее, чем копия. Любые объяснения? Это ожидаемый результат?
Edit-
Я решил переместить/скопировать папку назначения, кроме текущей папки.
time cp test.txt ../copy.txt
и
time mv test.txt ../copy.txt
На этот раз сП принял 9.238s и мв взял только 0.297s. Поэтому не то, что предлагали некоторые из ответов.
UPDATE
Ответы правильно. Когда я попытался записать mv
файл на другой диск в той же системе, mv
и cp
заняли почти одно и то же время.
Здесь есть несколько переменных. Если исходные и целевые файловые системы разные, то 'mv' не может быть намного быстрее, чем' cp'. Но если они одинаковые, то 'mv' влечет за собой просто изменение записи _directory_ для файла, содержимое остается неизменным. Это должно быть быстрее, чем когда нужно копировать все содержимое. –
Когда вы перемещаете файл на одном диске, он фактически не перемещается. Его физическое местоположение будет там, и только индексы получат обновление.Попробуйте перейти на другой диск, и вы узнаете. –
@terminalninja Вы имеете в виду scp? – VM17