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