Как установка-c отличающаяся от CP

Каково различие между установкой-c и CP? Большинство установок имеет тенденцию использовать установку-c, но из страницы справочника она не кажется, что делает что-либо различное, чем CP (кроме, возможно, полномочий набора). Когда я должен использовать установку-c и когда CP?

20
задан 06.01.2011, 18:43

3 ответа

Одна значительная разница - то, что CP усекает целевой файл и начинает копировать данные из источника в целевой файл.

установка, с другой стороны, удаляет целевой файл сначала.

Это значительно, потому что, если целевой файл уже является используемыми, плохими вещами, мог бы произойти с тем, кто бы ни использует тот файл в случае, если Вы cp новый файл сверху его. например, перезапись исполняемого файла, который работает, могла бы перестать работать. Усечение файла данных, в который существующий процесс занят, читая/пишущий, могло вызвать довольно странное поведение. Если Вы просто удаляете целевой файл сначала, как установка делает, вещи продолжаются во многом как нормальный - удаленный файл на самом деле не удален до всех процессов близко тот файл.

18
ответ дан 07.12.2019, 10:12

Технически, различие между install -c и cp это install устанавливает полномочия конечного файла к rwxr-xr-x. cp сохраняет полномочия исходного файла минус umask. Эти поведения по умолчанию полезны в различных ситуациях. Очевидно, со всеми опциями это оба cp и install предложите в наше время, технические возможности сходились.

В наше время, install является наиболее часто используемым в make-файлах, cp везде еще. Это различие иногда полезно, потому что некоторые операционные системы или системы установки позволяют Вам сцепляться в install программа для регистрации установленных пакетов. Современные системы управления пакета делают это довольно устаревшим, но некоторые люди все еще используют его. Кроме того, возможность установить полномочия конечного файла в том же движение очень удобна.

7
ответ дан 07.12.2019, 10:12

install утилита, в ее основе, является воображением cp. Но как инструмент конкретно делают установки, он содержит несколько функций это cp не делает. Мой /usr/bin/install от GNU coreutils не только копирует, но также и может изменить перманент/владение, поскольку аргумент отмечает (сохранение chgrp, chown, chmod вызовы) опция разделить информацию об отладке (сохраняющий a strip вызов) и также некоторое заклинание для контекстов SELinux.

Это просто обеспечивает действия удобства, полезные для установок программного обеспечения. Ни один не является судьбоносным, все полезны, и делают Ваш инструмент для очистки сценариев.

4
ответ дан 07.12.2019, 10:12

Теги

Похожие вопросы