-
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.
