mv a b
cp a b
;rm a
Это два набора операторов. Есть ли некоторое различие между тем, что они делают?
Принятие включенных файлов находится в той же файловой системе, затем mv просто изменяет указатели в файловой системе, тогда как CP копирует все содержание файла, и комната еще раз изменяет указатели. Таким образом, mv намного более эффективен.
Да, mv имеет шанс того, чтобы быть атомарным на том же диске, тогда как комбинация CP и комнаты никогда не имеет.
Это предполагает, что mv реализован с помощью rename()
, который является вызовом, который имеет гарантию. См., например, это сообщение группы новостей, которое заключает POSIX в кавычки:
Это переименовывает (), функция эквивалентна для регулярных файлов определенному стандартом ISO C. Его включение здесь разворачивает то определение для включения действий с каталогами и указывает поведение, когда новые названия параметра файл, который уже существует. Та спецификация требует, чтобы действие функции было атомарным.
В той же файловой системе mv изменяет ссылку каталога, указывая на тот же inode (данные файла и метаданные) таким образом:
Скопируйте и удалите
Когда источник и место назначения находятся на том же физическом томе, затем первый подход является просто переименовыванием и очень быстр (даже если файл (файлы) является очень большим).
cp
& rm
будет всегда иметь к загрузке и хранению все данные, даже если это не было необходимо.
mv является в сущности "переименовать" операцией. Это означает, что сам файл оставляют в том же месте на диске. Никакая фактическая операция файла не выполняется.
Да.
mv просто изменяет метаданные файловой системы по файлу, касающемуся, это - название и местоположение, тогда как CP создает отдельную копию файла, который берет намного дольше, поскольку это должно полностью считать первый файл и затем записать, что это - содержание в другой файл
Различие - то, что mv сохраняет атрибуты файла, в то время как CP по умолчанию не делает, например, устанавливая дату создания на текущую дату.
Для переопределения этого значения по умолчанию используйте "CP-p" для сохранения последней модификации данных, время последнего доступа, идентификатора пользователя и идентификатора группы (только если это имеет полномочия сделать это), биты полномочий файла и SUID и биты SGID.